Ribbon自带负载均衡策略比较

策略名 策略声明 策略描述 实现说明
BestAvailableRule public class BestAvailableRule extends ClientConfigEnabledRoundRobinRule 选择一个最小的并发请求的server 逐个考察Server,如果Server被tripped了,则忽略,在选择其中ActiveRequestsCount最小的server
AvailabilityFilteringRule public class AvailabilityFilteringRule extends PredicateBasedRule 过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server,并过滤掉那些高并发的的后端server(active connections 超过配置的阈值) 使用一个AvailabilityPredicate来包含过滤server的逻辑,其实就就是检查status里记录的各个server的运行状态
WeightedResponseTimeRule public class WeightedResponseTimeRule extends RoundRobinRule 根据相应时间分配一个weight,相应时间越长,weight越小,被选中的可能性越低。 一个后台线程定期的从status里面读取评价响应时间,为每个server计算一个weight。Weight的计算也比较简单responsetime 减去每个server自己平均的responsetime是server的权重。当刚开始运行,没有形成statas时,使用roubine策略选择server。
RetryRule public class RetryRule extends AbstractLoadBalancerRule 对选定的负载均衡策略机上重试机制。 在一个配置时间段内当选择server不成功,则一直尝试使用subRule的方式选择一个可用的server
RoundRobinRule public class RoundRobinRule extends AbstractLoadBalancerRule roundRobin方式轮询选择server 轮询index,选择index对应位置的server
RandomRule public class RandomRule extends AbstractLoadBalancerRule 随机选择一个server 在index上随机,选择index对应位置的server
ZoneAvoidanceRule public class ZoneAvoidanceRule extends PredicateBasedRule 复合判断server所在区域的性能和server的可用性选择server 使用ZoneAvoidancePredicate和AvailabilityPredicate来判断是否选择某个server,前一个判断判定一个zone的运行性能是否可用,剔除不可用的zone(的所有server),AvailabilityPredicate用于过滤掉连接数过多的Server。

Ribbon架构图

参考资料

http://lxlong.iteye.com/blog/2314573

转载于:https://www.cnblogs.com/zhangjianbin/p/7157709.html

Ribbon自带负载均衡策略比较相关推荐

  1. Ribbon修改默认负载均衡策略

    第一种方式 使用配置类 如果这个配置类使用@Configuration注解并写在主启动类能够进行包扫描的范围中,那么调用其他微服务,一律使用这一种负载均衡算法.当然也可以写在主启动所在包的外面 配置类 ...

  2. Ribbon的权重负载均衡策略

    WeightedResponseTimeRule根据每个服务器的响应时间计算权重,根据这里得出的权重来选择服务器,相应时间越短的服务器被选择的概率越大. void initialize(ILoadBa ...

  3. 【SpringCloud】Netflix源码解析之Ribbon:负载均衡策略的定义和实现

    Ribbon负载均衡策略定义 IRule其实就只做了一件事情Server choose(Object key),可以看到这个功能是在LB中定义(要求)的,LB把这个功能委托给IRule来实现.不同的I ...

  4. 企业级java springcloud b2bc商城系统开源源码二次开发-负载均衡策略...

    简单轮询负载均衡 以轮询的方式依次将请求调度不同的服务器,即每次调度执行i=(i+1) mod n 文章来源 JAVA ssm b2b2c多用户商城系统源码 随机负载均衡 随机选择状态为UP的serv ...

  5. SpringCloud组件:Ribbon的负载均衡策略及原理

    来源:blog.csdn.net/wudiyong22/article/details/80829808 Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法 ...

  6. ribbon负载均衡策略详解

    一,IRule接口 IRule接口定义了选择负载均衡策略的基本操作.通过调用choose()方法,就可以选择具体的负载均衡策略. // 选择目标服务节点 Server choose(Object va ...

  7. spring cloud中通过配置文件自定义Ribbon负载均衡策略

    2019独角兽企业重金招聘Python工程师标准>>> spring cloud中通过配置文件自定义Ribbon负载均衡策略 博客分类: 微服务 一.Ribbon中的负载均衡策略 1 ...

  8. SpringCloud Ribbon中的7种负载均衡策略!

    作者 | 磊哥 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器,而 ...

  9. 面试官:你能说说Ribbon的负载均衡策略及原理嘛?

    来源:blog.csdn.net/wudiyong22/article/details/80829808 Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法 ...

最新文章

  1. SVN中trunk、branch、tag区别
  2. 联机日志损坏的解决办法
  3. hashCode()方法的性能优化
  4. 【DP】小明游天界(zjoj 2149)
  5. Android笔记-Xposed的使用(Hook登录函数获取用户名密码)
  6. 思想篇(1)--企业需要什么样的人才?
  7. 职务作品的著作权归属情况分析
  8. 电商产品经理:电商后台系统
  9. 威锋 VL817-Q7 HUB 芯片,一进四出USB3.1gen1 5G速率传输。
  10. python 主函数传参_Python函数传参详解
  11. EXPDP命令行选项
  12. C语言算法训练学做菜,Java实现 蓝桥杯VIP 算法训练 学做菜
  13. Vue中时间日期格式化
  14. 比利时时尚包袋品牌Kipling携手可口可乐推出联名系列
  15. Redis底层原理和数据结构-总结篇
  16. python3 zip命令_Python调用zip命令正确操作方法解析
  17. 【Android studio】使用雷电模拟器详细过程(或其他)(转)
  18. java中to date_Java Date toInstant()用法及代码示例
  19. java中空指针异常如何解决_main函数中出现空指针异常,如何解决?
  20. 佳能eosr控制环能否计算机控制,镜头不够EF口来凑 佳能EOS R转接性能测试

热门文章

  1. Shell 脚本中如何使用make命令
  2. [react] 浏览器为什么无法直接JSX?怎么解决呢?
  3. React开发(205):react代码分割之context
  4. React开发(128):ant design学习指南之input中addonBefore
  5. 前端学习(3022):vue+element今日头条管理-首页layont布局
  6. 前端学习(2935):v-for案例
  7. [vue] 你有使用过vue开发多语言项目吗?说说你的做法?
  8. 前端学习(2640):懂代码之登录页login.vue存入用户信息
  9. 前端学习(2537):vue源码解析2伪数组转换为真数组
  10. “约见”面试官系列之常见面试题第三十六篇之CSS常见兼容性问题及解决方案(建议收藏)