一.Ribbon自己提供的七种策略
1.1 Ribbon提供的策略及其功能效果介绍
轮询:一个节点一次无限循环的调。
随机:如其名随机的,服务节点随机无规则的调。
重试:按照轮询的策略获取服务,如果失败则会在指定的时间内一直重试轮询获取可用服务,默认时间500毫秒,可自定义时间。
权重:初始化时去统计每一个服务的权重,时间越长,权重(weight)越小,被选中的可能性就越小。
空闲:过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务。
过滤:先过滤掉由于多次访问故障而处于熔断器跳闸状态的服务,还有并发的连接数量超过阈值的服务,然后对剩余的服务列表按照轮询策略进行访问
大区过滤:先过滤调不可用的区域服务,在过滤调有故障或者超阈值的服务,剩下的服务轮询
1.2 实现方式
二.自定义算法
2.1 主启动类配置开启自定义算法:
ribbon中具体实现负载均衡的策略是通过IRule这个接口来实现的,接口实现结构图
name:指定对使用算法的服务名称SelfRule.class) 配置
注意:
从上面这段话的意思是说,自定义的MySelfRule类不能和启动类在同级或者同一个包下
2.2 Eureka结合Ribbon负载均衡时如何调用,下图为调用实列:
PRODUCTACLIENT:服务的名称
getuser:在该服务下的节点中的提供调用的服务方法方法