Ribbon属于客户端负载均衡,在SpringCloud中从Eureka获取服务信息列表,在客户端做负载均衡选择其中之一,进行访问;
- RestTemplate
- Feign
- Zuul
以上三种都使用到了Ribbon;
Ribbon实现负载均衡核心:
- 服务发现 --发现所有服务
- 服务选择规则 --如何从多个服务中选择一个服务
- 服务监听 --及时监听新加入的服务、消失的服务
Ribbon主要组件
- serverList
- IRule
- ServerListFilter
通过serverList获取所有可用服务列表,通过ServerListFilter过滤掉一些地址,最终在剩下地址中选择一个实例作为最后目标
以RestTemplate使用为例(参考:https://blog.csdn.net/weixin_36634753/article/details/90264907)
修改负载均衡规则,在配置文件中添加如下配置:配置的值选择下图的类名,需写完整路名包括包名
PRODUCT:
ribbon:
NFLoadBalancerRuleClassName:值选择如下图