如何伪装成一个服务端开发SpringCloud(一)
PS: 这里的分布式只是服务的分布式,并非数据的分布式。一套完整的分布式系统,还包括数据的分布式,比如 多库多表(db),多地缓存(redis)等。
Spring Cloud
Spring Cloud中包含了非常多的组件,每个组件或许都会有多种实现,就问你怕不怕。但是幸好,初学状况下,我们可以先尝试一下这些组件,然后再慢慢添砖加瓦。
服务治理与发现 : 现在我有多台机器,提供了各种服务称为微服务,同一个微服务可能由多台机器提供支持,将多台机器注册到一个服务中心。同时服务中心拥有治理这些子服务的能力。我们把这个注册和管理称为服务治理与发现,在spring cloud中通常使用 Netflix Eureka 实现。
微服务间相互调用及负载均衡:通常,对于分布式系统,如果要完成一个流程可能会涉及到多个微服务之间的相互调用。并且,在调用过程中还需要注意负载均衡。所谓负载均衡就是当100个请求调用过来,如果我有10台机器提供了微服务,我会希望,每台机器处理10个请求,这就是负载均衡。一般在spring cloud中使用 ribbon或者feign实现。
断路器:当整个系统中的某个服务不可用或者极度繁忙的时候,会导致调用该服务的链路阻塞,最终会导致整个分布式系统雪崩。为了防止这样的情况发生,就出现了断路器。当调用一个服务超过一定时间还未获得响应时,断路器就会自动停止当前调用,并且使用降级服务(需自己定义)返回内容。在Spring Cloud中,使用 Hystrix 完成该功能。
网关路由:当实现了上述功能之后,微服务之间就能正常协作了。但是对于外部调用,就会存在问题。外部调用需要明确指定调用到哪一台机器的服务。所以我们就需要使用网关路由提供统一的访问地址,让网关路由帮我们转发请求。在Spring Cloud中会使用 Zuul实现该功能。
以上是 如何伪装成一个服务端开发SpringCloud(一) 的全部内容, 来源链接: utcz.com/z/513396.html