Spring Cloud之Ribbon

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

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

其中item-service为服务的实例名。当想更改其余组件,例如Ping时,配置相似。
由于Ribbon主要使用于负载均衡,我们主要详情一下他的各种负载均衡策略。
IRule接口下实现类
AvailabilityFilteringRule:过滤掉处于断路的和连接超过int最大值的。
BestAvailableRule:过滤掉断路的并且选择连接数最少的
ZoneAvoidanceRule:根据zone和可使用性选取最佳的。
RoundRobinRule:随机策略,这个就不是说了。
AvailabilityFilteringRule:跳过那些被认为是断路或者高并发连接的服务。
WeightedResponseTimeRule:根据服务响应的时长作为权重,响应时间越长,权重越小。
一般来说我们会用ZoneAvoidanceRule作为我们负载均衡策略。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Spring Cloud之Ribbon