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 # 负载均衡规则