Ribbon核心组件IRule

IRule是Ribbon中的核心组件,用于实现负载均衡。默认算法为轮询,还包括随机、根据响应时间权重等7种算法。可以通过自定义算法来扩展。在Spring容器中配置IRule即可使用,应用时需考虑具体场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

IRule是负载均衡的核心算法类,若未定义是用什么算法,默认使用轮询RoundRobinRule
里面包括7种算法提供使用(若不想使用这7种算法,可以自定义算法)

算法

1.RoundRobinRule 轮询
2.RandomRule 随机
3.AvailabilityFilteringRule
先过滤掉由于故障处于断路器跳闸状态的服务,还有并发连接超过阈值的服务,然后对剩余的服务列表进行轮询
4.WeightedResponseTimeRule
根据平均响应时间计算所有服务器的权重响应时间越快,权重越大,刚启动统计信息不足会采用轮询,当统计信息足够,会切换到WeightedResponseTimeRule
5.RetryRule
按照轮询算法获取服务器列表,若获取服务失败,在指定的时间重试,获取可用的服务
6.BestAvailableRule
先过滤由于多次访问故障而处于断路器跳闸状态的服务器,然后选择并发量最小的服务
7.ZoneAvoidanceRule
默认规则,复合判断server所在区域的性能和server可用性选择服务器

使用

将负载均衡算法注入spring容器中即可
在@Configuration的泪中加入返回值为IRule类型

@Bean
    public IRule myRule(){
        return new RandomRule();
    }

要注意应用场景

参考资料:尚硅谷周阳Spring Cloud讲解

本文若有错误请指正,互相学习,加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值