前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ribbon负载均衡策略

Ribbon负载均衡策略

作者头像
Li_XiaoJin
发布2022-06-10 21:13:34
4060
发布2022-06-10 21:13:34
举报
文章被收录于专栏:Lixj's BlogLixj's Blog

关于Ribbon的负载均衡策略。

Ribbon 的核心组件是 IRule,IRule 是所有负载均衡策略的父接口,其子类有:

每一个子类就是一种负载均衡策略

  • RandomRule:随机选取负载均衡策略,随机 Random 对象,在所有服务实例中随机找一个服务的索引号,然后从上线的服务中获取对应的服务。
  • RoundRobinRule:线性轮询负载均衡策略。
  • WeightedResponseTimeRule:响应时间作为选取权重的负载均衡策略,根据平均响应时间计算所有服务的权重,响应时间越短的服务权重越大,被选中的概率越高。刚启动时,如果统计信息不足,则使用线性轮询策略,等信息足够时,再切换到 WeightedResponseTimeRule。
  • RetryRule:使用线性轮询策略获取服务,如果获取失败则在指定时间内重试,重新获取可用服务。
  • ClientConfigEnabledRoundRobinRule:默认通过线性轮询策略选取服务。通过继承该类,并且对 choose 方法进行重写,可以实现更多的策略,继承后保底使用 RoundRobinRule 策略。
  • BestAvailableRule:继承自 ClientConfigEnabledRoundRobinRule。从所有没有断开的服务中,选取到目前为止请求数量最小的服务。
  • PredicateBasedRule:抽象类,提供一个 choose 方法的模板,通过调用 AbstractServerPredicate 实现类的过滤方法来过滤出目标的服务,再通过轮询方法选出一个服务。
  • AvailabilityFilteringRule:按可用性进行过滤服务的负载均衡策略,会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,还有并发的连接数超过阈值的服务,然后对剩余的服务列表进行线性轮询。
  • ZoneAvoidanceRule:本身没有重写 choose 方法,用的还是抽象父类 PredicateBasedRule的choose。

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://cloud.tencent.com/developer/article/2020508

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档