在看SpringCloud官方文档的时候,发现Ribbon可以通过配置文件方式来修改负载均衡策略,但是实际测试不生效。
yml配置如下:
# 服务提供者应用名称
sc-ribbon-producer:
ribbon:
# 指定服务提供者负载均衡策略
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
实际测试中发现并没有使用随机策略,还是用的原始的轮询。
官方文档对应章节:
https://springcloud.cc/spring-cloud-dalston.html#_customizing_the_ribbon_client_using_properties
希望大神帮提点一下。
服务提供者应用名称sc-ribbon-producer 要与restTemplate 调用时,保持大小写一致。
亲测版本:springcloud Hoxton.SR1 springboot 2.2.2.RELEASE
// 比如: 你的服务提供者名称这里用的是全小写:sc-ribbon-producer,那么restTemplate里也要小写
restTemplate.getForObject("http://sc-ribbon-producer/xx/xx", String.class);
1