17-springcloud-ribbon-3-Ribbon 负载均衡策略
Ribbon 的负载均衡策略是由 IRule 接口定义, 该接口由如下实现:
在jar包:com.netflix.ribbon#ribbon-loadbalancer中;
要使用ribbon实现负载均衡,在Spring 的配置类里面把对应的负载均衡接口实现类作为一个Bean配置一下就行了;
负载均衡的入口:ILoadBalancer接口
如果要切换负载均衡策略:
@Bean
public IRule iRule(){
return new RoundRobinRule();
}
负载均衡实现 |
策略 |
RandomRule |
随机 |
RoundRobinRule |
轮询 |
AvailabilityFilteringRule |
先过滤掉由于多次访问故障的服务,以及并 发连接数超过阈值的服务,然后对剩下的服 务按照轮询策略进行访问; |
WeightedResponseTimeRule |
根据平均响应时间计算所有服务的权重,响 应时间越快服务权重就越大被选中的概率即 越高,如果服务刚启动时统计信息不足,则 使用RoundRobinRule策略,待统计信息足够会切换到该WeightedResponseTimeRule策 略; |
RetryRule |
先按照RoundRobinRule策略分发,如果分发 到的服务不能访问,则在指定时间内进行重 试,然后分发其他可用的服务; |
BestAvailableRule |
先过滤掉由于多次访问故障的服务,然后选 择一个并发量最小的服务; |
ZoneAvoidanceRule (默认) |
综合判断服务节点所在区域的性能和服务节 点的可用性,来决定选择哪个服务; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!