Ribbon_基于Eureka进行负载均衡的流程图
2021-12-12 16:01:51 0 举报
Ribbon_基于Eureka进行负载均衡的流程图
作者其他创作
大纲/内容
@LoadBalance修饰RestTemplate
调用者
初始化Ribbon组件
ZoneAwareLoadBalancer默认负载均衡器
真正的url地址
定时同步缓存30秒
拦截器LoadBalancerInterceptor
ribbon
选择一个实例
eureka server注册表
RibbonClientSpecificationdefault配置
spring
定时调度
RibbonClientConfiguration固定配置类
NFLoadBalancerPingInterval每30秒调用1次
初始化Bean
添加
parent
初始化完毕的负载均衡器以及服务的实例列表
EurekaRibbonClientConfiguration配置
真正执行http请求spring web
初始化服务A独立的Spring上下文
启动
负载均衡选择的一个实例地址
EurekaClient
@RibbonClient
根据服务A
判断服务实例状态
初始化
自定义配置类
返回
RibbonLoadBalancerClient
父上下文ApplicationContext
Eureka服务发现
RestTemplate
加载
eureka
NIWSDiscoveryPing检查实例(无网络请求)
更新
更新实例状态duration * 2 = 180s
获取client本地注册表
根据服务名获取服务列表
初始化DiscoveryEnabledNIWSServerList
PredicateBasedRule轮询负载均衡算法
eureka server故障发现
定时增量拉取30秒
每个服务只初始化1次
RibbonClientSpecification独立配置
代理请求
SpringClientFactory初始化Spring上下文
服务A的Spring上下文ApplicationContext
注册
getForObject()
RibbonEurekaAutoConfiguration自动装配
spring cloud ribbon
获取ILoadBalancer
LoadBalancerAutoConfiguration
同步只读缓存ReadOnlyCacheMap
上线下线实例180s + 30s + 30s = 240s
@RibbonClients
0 条评论
下一页