🥝FANMR.CN热爱,追求
Ribbon

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)})

指定哪个服务用哪种策略