Spring Cloud之Ribbon

作者 : 开心源码 本文共762个字,预计阅读时间需要2分钟 发布时间: 2022-05-12 共232人阅读

上篇详情了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

发表回复