SpringCloud 的负载均衡的实现就是Ribbon组件。
简言之,Ribbon 有自己的负载均衡算法(轮询、随机),同时也支持用户自定义负载均衡规则(需要了解Ribbon相关的API)。除此之外,Ribbon还可以单独于服务发现组件而使用。
面试中有问到“SpringCloud是如何做到负载均衡的”,我只想起了Ribbon的@LoadBlanced注解,很尴尬连轮询和随机都没想起来(因为确实工作中没操作过啊,印象不深啊)。我想说的是,Ribbon负载均衡围绕它自己,还是有很多东西可以说的。下面按有点带面发散思维的问题方式梳理下Ribbon的负载均衡到底是咋做到的。
1、SpringCloud 的负载均衡是怎么实现的?
通过Ribbon实现。一般Ribbon的依赖是可以不加的,因为服务发现组件都已经包含Ribbon了。Ribbon的负载均衡可通过添加注解@LoadBlance实现,而@LoadBlance需要添加在RestTemplate类上,因为Ribbon就是通过对HTTP和TCP来控制的。
2、Ribbon的负载均衡算法有哪些?
轮询、随机
3、Ribbon配置自定义
(待组织语言。。。。。。)