spring-cloud-ribbon之spring-cloud-1.3.4(Dalston.SR3)-boot(1.5.6) 学习笔记
概述
- 软负载均衡需要支持三个功能,带选择的服务器列表/从待选服务器中选出一个服务器/调用选择的服务器
- RibbonClients/RibbonClient引入RibbonClientConfigurationRegistrar,解析相关配置信息
- RibbonClientConfiguration注入ribbon级别支持bean(ILoadBalancer/IRule/ServerList)
- RibbonAutoConfiguration通过LoadBalancerAutoConfiguration开启负载均衡配置
- ribbon即可单独与RestTemplate联合使用,也可与feign一起连用(见上篇文章)
- 参考
RibbonClients/RibbonClient—->引入RibbonClientConfigurationRegistrar,解析相关配置信息
RibbonClientConfiguration—->注入ribbon级别支持bean(ILoadBalancer/IRule/ServerList)
- 注入ZoneAwareLoadBalancer(加入区域信息),底层依赖BaseLoadBalancer进行服务获取
- 注入ZoneAvoidanceRule,底层依赖RoundRobinRule进行轮询获取服务列表
- 注入ConfigurationBasedServerList,从配置属性获取服务列表
RibbonAutoConfiguration—->依赖classpath路径下有IClient/RestTemplate/Ribbon开启负载注入
- 引入LoadBalancerAutoConfiguration,注入LoadBalanced注解标记的RestTemplate,给RestTemplate添加LoadBalancerInterceptor或者RetryLoadBalancerInterceptor拦截器
- 注入SpringClientFactory
- 注入LoadBalancerClient(RibbonLoadBalancerClient)—->支撑ribbon进行轮询调用,与feign结合使用一致,只不过开启的开关不一样
LoadBalancerAutoConfiguration—->负载均衡支持
- restTemplates—->注入应用配置的LoadBalanced注解标记的RestTemplate
- 注入LoadBalancerRequestFactory,负载的请求创建工厂
- 如果无RetryTemplate,则将LoadBalancerInterceptor添加至RestTemplate拦截器
- 如果有RetryTemplate,则使用RetryLoadBalancerInterceptor添加至RestTemplate拦截器
本文档介绍了Spring Cloud Ribbon的使用方式,包括其在Spring Cloud 1.3.4和Spring Boot 1.5.6版本中的配置及实现原理。详细解释了RibbonClients/RibbonClient如何引入配置信息,RibbonClientConfiguration如何注入ILoadBalancer等关键组件,并介绍了RibbonAutoConfiguration如何启动负载均衡配置。

1057

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



