客户端负载均衡器:Ribbon
Ribbon实现软负载均衡核心:
- 服务发现 :依据服务的名字,把该服务下所有的实例都找出来
- 服务选择规则:依据规则策略,如果从多个实例中,选出有效的服务
- 服务监听:检测失效的服务,做到高效剔除
Ribbon主要组件:
- ServerList (获取所有的服务列表)
- IRule(根据规则选择出有效的)
- ServerListFilter(过滤掉失效的)
流程:
1.首先通过ServerList获取所有的服务列表
2.然后通过ServerListFilter过滤掉一部分地址
3.最后通过IRule选择一个实例,作为最终目标结果
默认负载均衡策略
- 轮询
如何修改负载均衡策略
-
去SpringCloud官网搜索Ribbon策略的配置(搜索:Customizing the Ribbon Client),可以找到从配置文件配置的方法
需要在客户端配置如下:
PRODUCT:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
PRODUCT : 应用名
RandomRule :负载均衡策略为随机 (Ribbon的默认策略默认是RoundRobinRule)
所有的负载均衡策略在IRule接口中可以看到: