SpringCloud源码-Ribbon
一、Spring定制化RestTemplate,预留出RestTemplate定制化扩展点
org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration
二、Ribbon定义RestTemplate Ribbon扩展点功能
org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration
LoadBalancerInterceptor使用ribbon LoadBalancerClient
ribbon定时拉取机器列表
ribbon通过eureka获取机器列表
ribbon自己缓存了机器列表,然后定时通过eureka进行同步。
ribbon核心的负载均衡逻辑,就在com.netflix.loadbalancer.IRule,怎根据key选择服务器的逻辑,也就在怎么实现这个接口。
二、与nacos注册发现整合
ribbon与nacos整合只在低版本,nacos注册发现依赖提供了对ribbon的支持,高版本不在提供对ribbon的支持。
依赖地址:
<!-- Spring Cloud Alibaba Nacos Discovery --> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>1.5.1.RELEASE</version> </dependency>
从2020.0.x及之后的版本,spring-cloud-starter-alibaba-nacos-discovery取消了对ribbon的支持。
三、社区活跃与维护
可以看到,从2021年后,ribbon就没有发布过新版本。