Ribbon---业务流程、类图
2021-10-31 15:11:19 0 举报
Ribbon整体业务流程+类图
作者其他创作
大纲/内容
ConfigurationBasedServerList
从配置列表获取服务信息
类图
传输
ServerIntrospector
服务信息内省
BaseLoadBalancer
基本实现1、Ping定时任务的开启2、Server变更的监听
判断是否开启定时任务
IRule
负载均衡的策略
缓存更新事件
缓存更新事件触发
ServerListUpdater
动态服务列表更新
负载均衡器
LoadBalancerFeignClient
Ribbon重写
通过Eureka获取
LoadBalancerStats
负载均衡的统计信息1、统计时区汇总信息2、统计服务汇总信息
响应结果
定时
AbstractLoadBalancerPing
根据负载均衡器中服务状态信息判断
ResponseTimeWeightedRule
尝试
30秒
Ping服务
MetaInfo
应用名称、实例ID、服务组
AbstractServerList
增加服务列表过滤器
RandomRule
随机
Server
服务器信息
RibbonLoadBalancingHttpClient
实现
包含
EurekaClient
FeignLoadBalancer.RibbonRequest
RetryRule
尝试,超时取消
PingConstant
任意的探活均是常量
RetryableRibbonLoadBalancingHttpClient
重试
DefaultClientConfigImpl
默认实现
WeightedResponseTimeRule
PingUrl
探活动作
执行
过滤
更新
内省
Client
Feign的客户端
Context每个客户端一个Spring的上下文
IPing
ZoneAwareLoadBalancer
多个时区中随机选择一个时区
FeignLoadBalancer
从IClientConfig获取基本信息,然后调用客户端执行
ILoadBalancer
负载均衡1、服务列表2、Rule规则3、服务可用性监控
拉取配置信息
DiscoveryEnabledNIWSServerList
从Eureka客户端获取服务列表
DefaultServerIntrospector
是
ServerListFilter
过滤器
转化
ServerList
服务列表的提供者1、获取初始化的服务列表2、获取更新后的服务列表
LoadBalancerContext
负载均衡器的上下文连接时间、读取时间最大重试次数、下一个服务器最大重试次数VIP信息
AbstractLoadBalancer
抽象实现
返回结果
OkHttpLoadBalancingClient
Ribbon的整体流程
RoundRobinRule
轮询
Feign.Request
环境
初始化Ribbon的各个组件
拉取已经更新完毕的服务列表
AbstractLoadBalancerAwareClient
抽象实现连接时间、读取时间最大重试次数、下一个服务器最大重试次数VIP信息
EurekaNotificationServerListUpdater
开启线程池,监听Eureka的缓存更新事件,更新服务列表
AbstractLoadBalancerRule
基本实现
InstanceInfo
元数据
IPingStrategy
探活策略
PollingServerListUpdater
服务列表更新
AbstractLoadBalancingClient
负载均衡实现
DiscoveryEnabledServer
客户端名称
SerialPingStrategy
串行执行探活
IClientConfig
客户端配置
Ping策略
DynamicServerListLoadBalancer
服务列表的动态监控
创建
服务Alive
依赖
更新服务列表信息
更新Servers
0 条评论
下一页