SpringCloud 整合Ribbon细粒度配置自定义

文章目录

Ribbon内置负载均衡规则,细粒度配置自定义

默认的ZoneAvoidanceRule在没有Zone的环境下。类似于轮询(RoudRobinRule)

1. 需求分析

假设内容中心同时调用2个微服务,
用户中心A 用随机规则,调用用户中心B采用默认的轮询规则

2. java代码配置

2.1. 创建一个类

@Configuration
@RibbonClient(name = "user-center",configuration = RibbonConfiguration.class )
public class UserCenterRibbonConfiguration {
}

2.2. 然后创建一个类

@Configuration
public class RibbonConfiguration {
@Bean
public IRule ribbonRandomRule(){
return new RandomRule();
}
}

3. 配置文件配置

Ribbon默认负载均衡策略采用:轮训
大白话:一人一次
想改变Ribbon默认负载均衡策略:
采用配置来修改:

格式:<serverNme>ribbon.NFLoadBalancerRuleClassName=策略类的全路径

例如:
将默认的轮训策略修改为随机策略

user-center:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule