整理SpringCloud微服务中学习中,Ribbon提供的若干个内置的负载规则。

Ribbon提供的若干个内置的负载规则,用户可以直接使用,基本可以满足大部分的需求,如果有更为复杂的要求,建议实现自定义负载规则。

主要规则如下:

  1. RoundRobinRule:系统默认规则,也是用的较多的一种规则。通过简单的轮询服务列表来选择服务器,其他的规则在很多情况下仍然使用RoundRobinRule。
  2. AvailabilityFilteringRule:顾名思义,有效性过滤规则。该规则会忽略一下服务器:
  • 无法连接的服务器:在默认情况下,如果 3 次连接失败,该服务器将会被置为 “短路”的状态,该状态将持续 30 秒,如果再次连接失败,“短路”状态的持 续 时 间 将 会 以 几 何 级 增 加 。 可 以 通 过 修 改 niws.loadbalancer<clientName>.connectionFailureCountThreshold 属性,来 配置连接失败的次数。

  • 高并发数过高的服务器:如果连接到该服务器的并发数过高,也会被这个规则忽略,可以通过修改<clientName>.ribbon.ActiveConnectionsLimit 属性来设定最高并发数。

     3.WeightedResponseTimeRule:为每个服务器赋予一个权重值,服务器的响应时间 越长,该权重值就是越少,这个规则会随机 选择服务器,这个权重值有可能会决定 服务器的选择。

     4.ZoneAvoidanceRule:该规则以区域、可用服务器为基础,进行服务器选择。使用 Zone 对服务器进行分类,可以理解为机架或者机房。

      5.BestAvailableRule:忽略“短路”的服务器,并选择并发数较低的服务器。

       6.RandomRule:顾名思义,随机选择可用的服务器。

       7.RetryRule:含有重试的选择逻辑,如果使用 RoundRobinRule 选择服务器无法连 接,那么将会重新选择服务器。

以上内容整理自《疯狂 Spring Cloud 微服务架构实战》这本书。作者:杨恩雄。本人也在学习,整理出来,供大家方便查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值