Alibaba:Ribbon
图
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,主要功能是提供客户端的软件负载均衡算法和服务调用,即存在多个相同的服务模块时,如何进行调用的场景解决方案

主流负载方案

  • 集中式负载均衡:在消费者和服务者中间使用独立的代理方式进行负载,有硬件(如F5)、也有软件(如Nginx)
  • 客户端根据自己的请求做负载均衡,拉取到服务列表后自己选择(如Ribbon)

常见负载算法

  • 随机
  • 轮询
  • 加权轮询
  • 地址Hash
  • 最小连接数

改所有负载策略

@Configuration
public class RibbonConfig {

    @Bean
    public IRule iRule() {
        return new RandomRule();
    }

}

注意:需要放在启动类扫描不到的地方

图

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

图

开启方式:在主启动类上配置

@RibbonClients(value = {@RibbonClient(name = "stock-service", configuration = RibbonConfig.class)})

指定哪个服务用哪种策略