玩转Eureka+Ribbon系列之Ribbon的负载均衡策略


策略类name描述
RandomRule随机策略随机选择
RoundRobinRule轮询策略按照index循环
RetryRule重试策略在一个配置时间段内当选择Server不成功,则一直尝试使用subRule的方式选择一个可用的server;轮询策略的增强版
BestAvailableRule最低并发策略逐个考察server,如果server断路器打开,则忽略,再选择其中并发链接最低的server
AvailabilityFilteringRule可用过滤策略过滤掉一直失败并被标记为circuit tripped的server,过滤掉那些高并发链接的server(active connections超过配置的阈值)或者使用一个AvailabilityPredicate来包含过滤server的逻辑,其实就就是检查status里记录的各个Server的运行状态;
WeightedResponseTimeRule响应时间加权重策略根据server的响应时间分配权重,响应时间越长,权重越低,被选择到的概率也就越低。响应时间越短,权重越高,被选中的概率越高,这个策略很贴切,综合了各种因素,比如:网络,磁盘,io等,都直接影响响应时间
ZoneAvoidanceRule区域权重策略综合判断server所在区域的性能,和server的可用性,轮询选择server并且判断一个AWS Zone的运行性能是否可用,剔除不可用的Zone中的所有server

1、全局设置

在cofig的配置文件里
在这里插入图片描述

1.1、随机策略

@Bean
    public RandomRule getRandomRule() {     //随机策略
        return new RandomRule();
    }

1.2、轮询策略

 @Bean
    public RoundRobinRule getRoundRobinRule() {     //轮询策略
        return new RoundRobinRule();
    }

1.3、重试策略

@Bean
    public RetryRule getRetryRule() {           //重试策略
        return new RetryRule();
    }

1.4、最少并发数策略

  @Bean
    public BestAvailableRule getBestAvailableRule() {       //最少并发数策略
        return new BestAvailableRule();
    }

1.5、可用过滤策略

@Bean
    public AvailabilityFilteringRule getAvailabilityFilteringRule() {   //可用过滤策略
        return new AvailabilityFilteringRule();
    }

1.6、响应时间+权重策略

@Bean
    public WeightedResponseTimeRule getWeightedResponseTimeRule() { //响应时间+权重策略
        return new WeightedResponseTimeRule();
    }

1.7、区域权重策略

 @Bean
    public ZoneAvoidanceRule getZoneAvoidanceRule() {       //区域权重策略
        return new ZoneAvoidanceRule();
    }

2、局部设置

service-provider:		#服务名
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thecoastlines

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值