一、什么是Ribbon?
Ribbon是Netflix公司开源的一个负载均衡的组件。
负载均衡是指将负载分摊到多个执行单元上,常见的负载均衡有两种方式:
- 独立于消费者和服务提供者,单独的一个进程,通过负载均衡策略将请求转发到执行单元上,比如nginx;
- 将负载均衡逻辑以代码的形式封装到消费者的客户端上,消费者以某种方式获取服务提供者的清单,通过负载均衡策略将请求分摊给多个服务提供者;
Ribbon的实现方式就是第二种,Feign已经默认集成了Ribbon
二、LoadBalancerClient
LoadBalancerClient是Ribbon中的负载均衡客户端,它可以使用负载均衡策略,从服务注册列表中选择获取服务的信息。而服务注册列表有两种方式可以获取:
- Ribbon会默认从Eureka Client的服务注册列表中获取服务的信息,并自己缓存一份,需要获取服务信息的时候会从缓存中获取
- 当禁止第1种方式获取时,需要在配置文件中自己去维护一份服务列表,提供给Ribbon去读取,也可以实现负载均衡