Ribbon的主要功能是用作负载均衡,而这种负载均衡模式是由客户端进行,与Nginx等负载均衡服务器不同的点在于,其并非可独立,且在客户端进行,同样其也提供了很多的负载均衡策略和算法
主流负载方案
- 集中式负载均衡:在消费者和服务者中间使用独立的代理方式进行负载,有硬件(如F5)、也有软件(如Nginx)
- 客户端根据自己的请求做负载均衡,拉取到服务列表后自己选择(如Ribbon)
常见负载算法
- 随机
- 轮询
- 加权轮询
- 地址Hash
- 最小连接数
改所有负载策略
@Configuration
public class RibbonConfig {
@Bean
public IRule iRule() {
return new RandomRule();
}
}
注意:需要放在启动类扫描不到的地方

能使用的策略可以看实现类

开启方式:在主启动类上配置
@RibbonClients(value = {@RibbonClient(name = "stock-service", configuration = RibbonConfig.class)})
指定哪个服务用哪种策略