声明:本站文章均为作者个人原创,图片均为实际截图。如有需要请收藏网站,禁止转载,谢谢配合!!!

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具
简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer (简称LB) 后面所有的机器,Ribbon 会自动帮助你基于某种规则(如 简单轮询,随机连接等 )去连接这些机器。我们容易使用Ribbon 实现自定义负载均衡的算法

1、原理

order-service发起请求
RibbonLoadBalancerClient(根据service获取真实请求地址)
DynamicServerListLoadBalancer(拉取服务列表,根据IRule选择服务,返回给RibbonLoadBalancerClient)

2、自定义Rule

2.1、在启动类新增(方法一)

@Bean
public IRule iRule(){
    //默认为轮询规则,这里自定义为随机规则
    return new RandomRule();
}

2.2、配置文件(方法二)

userservice: # 给需要调用的微服务配置负载均衡规则,orderservice服务去调用userservice服务
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则