- Spring Cloud构建微服务架构—服务消费Ribbon
- Spring Cloud构建微服务架构服务消费Ribbon
- Spring Cloud构建微服务架构-服务消费(Ribbon)
- Spring Cloud构建微服务架构—服务消费(Ribbon)
- SpringCloud:服务的消费者 Ribbon
- Spring Cloud Ribbon 分析(二)之LoadBa
- Spring Cloud Ribbon 分析(三)之Ribbon
- Spring Cloud构建微服务架构—服务消费(Ribbon)
- Spring Cloud构建微服务架构—服务消费(Ribbon)
- java版spring cloud+spring boot 社交

上篇介绍了eureka即注册中心,那么当有多个服务实例时,我们需要访问实例的负载均衡策略。Spring Cloud为此提供了客户端负载均衡组件Ribbon。
先来说一下Ribbon中几个重要的组件:
Rule:访问微服务列表的规则
Ping:检查微服务是否存活
ServerList:微服务列表,他可以指定为DynamicServerListLoadBalancer即动态的,若为动态的则会启动一个后台线程间隔一定时间去刷新服务列表
环境就用前一篇讲eureka的,Ribbon和Eureka配合使用很简单,我们只需在调用方的RestTemplate上加上@LoadBalanced注解即可,即代表我们开启了负载均衡功能。然后调用微服务时我们的逻辑可以简化为

由此可见我们只需要指定服务ID即可。我们每次访问服务时他都会按照指定的访问策略进行访问。
接下来是指定负载均衡策略,在配置文件中进行配置

其中item-service为服务的实例名。当想更改其他组件,例如Ping时,配置类似。
因为Ribbon主要用于负载均衡,我们主要介绍一下他的各种负载均衡策略。

AvailabilityFilteringRule:过滤掉处于断路的和连接超过int最大值的。
BestAvailableRule:过滤掉断路的并且选择连接数最少的
ZoneAvoidanceRule:根据zone和可用性选取最佳的。
RoundRobinRule:随机策略,这个就不是说了。
AvailabilityFilteringRule:跳过那些被认为是断路或高并发连接的服务。
WeightedResponseTimeRule:根据服务响应的时长作为权重,响应时间越长,权重越小。
一般来说我们会使用ZoneAvoidanceRule作为我们负载均衡策略。
网友评论