SpringCloud Consul server 选取 与 serverList 更新机制
2021-04-11 05:28
标签:man href cts star reac poll gets 接口 update (SpringCloud Consul 2.2.3) 1. feign 调用时,server 选取的流程:(借助 ribbon 实现的) 2. SpringCloud Consul : serverList 更新机制 参考: SpringCloud Consul server 选取 与 serverList 更新机制 标签:man href cts star reac poll gets 接口 update 原文地址:https://www.cnblogs.com/kevin-yuan/p/13362057.html
ribbon-loadbalancer-2.3.0.jar
可以加一个 feign.RequestInterceptor ,然后在 inteceptor 上打断点,找到下面的调用关系1 1. feign接口
2 1.1 org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient#execute()
3 1.1.1 com.netflix.client.AbstractLoadBalancerAwareClient#executeWithLoadBalancer()
4 1.1.1.1 com.netflix.loadbalancer.reactive.LoadBalancerCommand#selectServer()
5 1.1.1.1.1 com.netflix.loadbalancer.ZoneAwareLoadBalancer#chooseServer() // 它自己维护了一个 serverList 列表,每 30s 更新一次
// 从 ILoadBalancer#getServerList() 中选取一个 server
com.netflix.loadbalancer.ZoneAwareLoadBalancer#chooseServer()
// 获取可用的服务 ILoadBalancer#getServerList
com.netflix.loadbalancer.BaseLoadBalancer#getServerList()
com.netflix.loadbalancer.PollingServerListUpdater#start() // 定时任务,30s 更新一次最新的服务列表信息
--> org.springframework.cloud.consul.discovery.ConsulServerList#getUpdatedListOfServers() // 断点打在这里,会发现隔段时间就会被调用
https://www.iflym.com/index.php/code/202003190001.html
文章标题:SpringCloud Consul server 选取 与 serverList 更新机制
文章链接:http://soscw.com/index.php/essay/74124.html