1. 什么是Ribbon及作用
(1) 什么是Ribbon?
Ribbon 是一个基于 Http 和 TCP 的客服端负载均衡工具,它是基于 Netflix Ribbon 实现的。它不像 spring cloud 服务注册中心、配置中心、API 网关那样独立部署,但是它几乎存在于每个 spring cloud 微服务中。 包括 feign 提供的声明式服务调用也是基于该 Ribbon 实现的。
ribbon 默认提供很多种负载均衡算法, 例如 轮询、随机 等等。甚至包含自定义的负 载均衡算法。
服务之间的通讯方式有两种 :一种是Ribbon方式 ,一种是声明式调用Feign
(2) Ribbon解决了什么问题?
解决并提供了微服务的负载均衡的问题
2. 集中式负载均衡与进程式的负载均衡区别
(1) 负载均衡方案有哪些分类?
(2) 什么是集中式负载均衡?
(3) 什么是进程内负载均衡?
(4) 二者之间有什么区别?
第一类:集中式负载均衡, 即在 consumer 和 provider 之间使用独立的负载均衡设施(可以是硬件,如 F5, 也可以是软件,如 nginx), 由该设施负责把访问请求通过某种策略转发 至 provider;
第二类:进程内负载均衡,将负载均衡逻辑集成到 consumer,consumer 从服务注册中 心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的 provider。
Ribbon 就属于后者,它只是一个类库,集成于 consumer 进程,consumer 通过它来获取 到 provider 的地址。
3. Ribbon的入门案例
(1) Ribbon中默认的负载均衡策略是什么策略?
Ribbon 中对于集群的服务采用的负载均衡的策略默认的是轮询
(2) LoadBalancerClient对象得作用是什么?
负载均衡器,通过choose方法指定调用哪个服务,进而实现负载均衡
4. Ribbon常见负载均衡策略
(1) Ribbon的负载均衡策略有哪些?
默认轮询,
权重轮询,
随机策略,
最少并发策略,
在上述策略基础上添加重试机制,
可用性敏感策略
(2) 每一种负载均衡的特点是什么?