Ribbon自带负载均衡策略比较
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自带负载均衡策略比较相关推荐
- Ribbon修改默认负载均衡策略
第一种方式 使用配置类 如果这个配置类使用@Configuration注解并写在主启动类能够进行包扫描的范围中,那么调用其他微服务,一律使用这一种负载均衡算法.当然也可以写在主启动所在包的外面 配置类 ...
- Ribbon的权重负载均衡策略
WeightedResponseTimeRule根据每个服务器的响应时间计算权重,根据这里得出的权重来选择服务器,相应时间越短的服务器被选择的概率越大. void initialize(ILoadBa ...
- 【SpringCloud】Netflix源码解析之Ribbon:负载均衡策略的定义和实现
Ribbon负载均衡策略定义 IRule其实就只做了一件事情Server choose(Object key),可以看到这个功能是在LB中定义(要求)的,LB把这个功能委托给IRule来实现.不同的I ...
- 企业级java springcloud b2bc商城系统开源源码二次开发-负载均衡策略...
简单轮询负载均衡 以轮询的方式依次将请求调度不同的服务器,即每次调度执行i=(i+1) mod n 文章来源 JAVA ssm b2b2c多用户商城系统源码 随机负载均衡 随机选择状态为UP的serv ...
- SpringCloud组件:Ribbon的负载均衡策略及原理
来源:blog.csdn.net/wudiyong22/article/details/80829808 Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法 ...
- ribbon负载均衡策略详解
一,IRule接口 IRule接口定义了选择负载均衡策略的基本操作.通过调用choose()方法,就可以选择具体的负载均衡策略. // 选择目标服务节点 Server choose(Object va ...
- spring cloud中通过配置文件自定义Ribbon负载均衡策略
2019独角兽企业重金招聘Python工程师标准>>> spring cloud中通过配置文件自定义Ribbon负载均衡策略 博客分类: 微服务 一.Ribbon中的负载均衡策略 1 ...
- SpringCloud Ribbon中的7种负载均衡策略!
作者 | 磊哥 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器,而 ...
- 面试官:你能说说Ribbon的负载均衡策略及原理嘛?
来源:blog.csdn.net/wudiyong22/article/details/80829808 Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法 ...
最新文章
- SVN中trunk、branch、tag区别
- 联机日志损坏的解决办法
- hashCode()方法的性能优化
- 【DP】小明游天界(zjoj 2149)
- Android笔记-Xposed的使用(Hook登录函数获取用户名密码)
- 思想篇(1)--企业需要什么样的人才?
- 职务作品的著作权归属情况分析
- 电商产品经理:电商后台系统
- 威锋 VL817-Q7 HUB 芯片,一进四出USB3.1gen1 5G速率传输。
- python 主函数传参_Python函数传参详解
- EXPDP命令行选项
- C语言算法训练学做菜,Java实现 蓝桥杯VIP 算法训练 学做菜
- Vue中时间日期格式化
- 比利时时尚包袋品牌Kipling携手可口可乐推出联名系列
- Redis底层原理和数据结构-总结篇
- python3 zip命令_Python调用zip命令正确操作方法解析
- 【Android studio】使用雷电模拟器详细过程(或其他)(转)
- java中to date_Java Date toInstant()用法及代码示例
- java中空指针异常如何解决_main函数中出现空指针异常,如何解决?
- 佳能eosr控制环能否计算机控制,镜头不够EF口来凑 佳能EOS R转接性能测试
热门文章
- Shell 脚本中如何使用make命令
- [react] 浏览器为什么无法直接JSX?怎么解决呢?
- React开发(205):react代码分割之context
- React开发(128):ant design学习指南之input中addonBefore
- 前端学习(3022):vue+element今日头条管理-首页layont布局
- 前端学习(2935):v-for案例
- [vue] 你有使用过vue开发多语言项目吗?说说你的做法?
- 前端学习(2640):懂代码之登录页login.vue存入用户信息
- 前端学习(2537):vue源码解析2伪数组转换为真数组
- “约见”面试官系列之常见面试题第三十六篇之CSS常见兼容性问题及解决方案(建议收藏)