eureka总结图
2019-07-08 10:08:00 9 举报
eureka整体架构图
作者其他创作
大纲/内容
实时同步
全量注册表
添加服务实例
eureka-serverB
摘除服务实例
从eureka-client.properties读取配置文件
registery
使用kill -15命令,允许服务释放资源
每隔 500ms eureka-server 会向其它eureka-server同步数据
合并本地注册表和增量注册表生成hash值
eureka - serverB 向eureka-serverA注册
拉取全量注册表
eureka的多级缓存机制
服务下线自动调用shutdown方法
全量注册表的hash值
初始化
服务注册
eureka-server 自我保护机制
增量注册表
双层map结构90s没发送心跳,认为宕机60s清除一次无心跳服务
ApplicationResources 类addInstance()方法
eureka的服务下线机制
心跳
转发
eureka - serverA 向eureka-serverB注册
readwriteCacheMap
如果hash值不同重新获取全量注册表
构造服务实例InstanceInfo
缓存180s过期30s同步数据给readOnly
发送http请求eureka-server的restful接口
同步数据
定时任务:30s抓取增量注册表
eureka-clientA
如果一分钟内,心跳总数 小于期望值就进入保护模式,不摘除任何服务实例
ps:乘以 2 这里,因为是统计一分钟的,然后30秒发一次心跳,所以乘了2。源码里写死了2,这里是个bug,如果自己配置了心跳发送间隔,那就错了。1.98版本修复了这个bug,之前的版本存在问题
cancel()方法
ps:服务实例数:除了自己,其它的所有服务,包括其它eureka - server
eureka-client注册
readOnlyCacheMap
web.xml 拦截delete请求
eureka-server 集群模式
期望心跳数 = 服务实例数 * 2 * 0.85(一分钟内的期望心跳数)
eureka-clientB
eureka的心跳机制
ps:生产环境不建议使用
定时任务:30s发送一次心跳
eureka-serverA
eureka-client 增量拉取注册表
web.xml 拦截注册请求
0 条评论
回复 删除
下一页