【2】SCN-Ribbon负载均衡
关键词
- 消费客户端负载均衡: Ribbon,利⽤从Eureka获取服务列表
- 负载策略:区域权衡策略,轮询,随机,重试,最小连接数,可用过滤策略
- 原理:Ribbon给restTemplate添加了⼀个拦截器

- 源码:利用了SpringBoot的**自动装配:RibbonAutoConfiguration **特点
- ConditionalOnClass(RestTemplate.class) 只有RestTemplate类存在,配置类才装配
- list.add(loadBalancerInterceptor):给每一个resttemplate添加拦截器(添加了注解的RestTemplate对象会被添加⼀个拦截器LoadBalancerInterceptor,该拦截器就是后续拦截请求进⾏负载处理的)
- 拦截器intercept()⽅法中,使用RibbonLoadBalancerClient对象进行负载均衡处理
- 核心方法:RibbonLoadBalancerClient.exe
本文详细介绍了SCN-Ribbon作为消费客户端的负载均衡工具,解析了其工作原理,包括Ribbon如何通过拦截器对RestTemplate添加负载处理,以及Ribbon的负载策略如轮询、随机等。同时,文章深入源码,分析了RibbonLoadBalancerClient的execute方法,以及如何通过IRule、IPing、ServerListFilter和ServerListUpdater进行服务选择和心跳检测。此外,还探讨了Ribbon的负载策略配置和饥饿加载的启用方式。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



