Eureka Server启动
2021-10-23 20:17:49 0 举报
Eureka Server启动
作者其他创作
大纲/内容
创建DiscoveryClient
清理过期续约实例每60秒
自动保护续约计算registryCount* 2*0.85
实例状态更改为UP
HeartbeatThread心跳
初始化线程池3个初始化启动所有调度任务
DefaultEurekaClientConfig
CacheRefreshThread本地缓存刷新是一个原子公共变量
启动监听器statusChangeListener监听instance的状态变更
PeerAwareInstanceRegistry创建集群注册表
jersey
AbstractInstanceConfig通用默认配置
绿色为三种配置文件1. instanceinfo配置文件2.EurekaClient配置文件3.EurekaServer配置文件
MyDataCenterInstanceConfig
LeaseInfo续约信息
30秒执行一次最大延迟10倍
执行registry.syncUp();
40秒执行一次每分钟更新允许的速率60*2/30
立即更新集群节点信息,之后每10分钟更新集群的节点配置信息一次,增删改,创建通信客户端EurekaJerseyClient
因为网络分区,可能会导致大量服务下线,通过续约重新计算任务15分钟一次
Eureka
触发CacheRefreshedEvent事件
fetchRegistry立即抓取注册表
执行serverContext.initialize();上下文初始化
EurekaClientConfig
tomcat
initEurekaEnvironment初始化运行环境
InstanceInfoReplicator 会固定周期检查本地应用实例是否有没向 Eureka-Server注册 ,若未注册,则发起注册同步
CloudInstanceConfig
sessionedClientReconnectIntervalSeconds会话客户端的重新连接间隔 20分钟
responseCacheAutoExpirationInSeconds
InstanceInfoEureka的一个节点信息创建实例信息
清缓存
peerEurekaNodes创建集群节点
responseCacheUpdateIntervalMs
延迟30秒30秒最大延迟10倍
instanceInfoReplicator开启服务注册辅助器客户端向服务器注册自己的信息
renewalThresholdUpdateIntervalMs
执行registry.openForTraffic
初始化读写缓存,启动只读缓存定时任务,30秒从读写缓存拉1次,读写缓存180秒失效
PropertiesInstanceConfig
DefaultEurekaServerConfig
创建DefaultEurekaServerConfig服务端配置
创建applicationInfoManagerservice服务信息管理
backgroundTask询问Eureka集群服务的url信息变化,5分钟
EurekaInstanceConfig,重在应用实例,例如,应用名、应用的端口等等。此处应用指的是,Application Consumer 和 Application Provider。EurekaClientConfig,重在 Eureka-Client,例如, 连接的 Eureka-Server 的地址、获取服务提供者列表的频率、注册自身为服务提供者的频率等等。
EurekaServerConfig
失败重试时间间隔,2的指数,最大30*10
高可用的 远程分区URL初始化 region1->\"http://region1host/eureka/v2\" region2->\"http://region2host/eureka/v2\"
initEurekaServerContexteureka上下文serverContext加载(server和client的配置文件的加载和创建)
增量,全量
初始化网络通信组件scheduleServerEndpointTask
创建DefaultEurekaClientConfig客户端配置
com.netflix.eureka.EurekaBootStrap
EurekaInstanceConfig
从相邻的eureka集群节点复制注册表每30秒一次,重试5次
peerEurekaNodesUpdateIntervalMs
如果eureka.client.fetchRegistry设置成true(默认值true),Eureka client在启动时会从Eureka server获取注册信息并缓存到本地,之后只会增量获取信息(可以把eureka.client.shouldDisableDelta设置成false来强制每次都全量获取)。获取注册信息的操作也是一个异步任务,每隔30秒执行一次(通过eureka.client.registryFetchIntervalSeconds配置),如果操作失败,也是以2的指数形式延长重试时间,直到达到eureka.client.registryFetchIntervalSeconds * eureka.client.cacheRefreshExecutorExponentialBackOffBound这个上限,之后一直以这个上限值作为重试间隔,直至重新获取到注册信息,并且重新尝试获取注册信息的次数是不受限制的。
创建EurekaInstanceConfig实例配置
DefaultEurekaServerContext创建Eureka服务端上下文
0 条评论
回复 删除
下一页