服务注册发现:Eureka源码剖析(12)核心机制源码剖析总结
- eureka 客户端会在启动时,从eureka server抓取全量注册表到本地
eureka server的维护了一个注册表多级缓存,所有外部对eureka server的注册表查询都会走这个缓存机制。这个二级缓存有30秒的同步间隔,也就意味着服务注册、下线、取消、状态变更,可能得等30秒才能生效
eureka client会每隔30秒,从eureka server抓取增量注册表,这个增量注册表也是放到注册表缓存里的
eureka client和eureka server之间通过心跳机制来完成健康检查
当eureka server发现最近1分钟内有低于85%的服务实例心跳成功,就会将自己置为自我保护模式。这个模式下,eureka server不会剔除过期服务实例。由于实现代码的问题,导致我么生产环境要么不用自我保护机制,要么就不能调整心跳时间间隔。
当eureka server不在自我保护模式时,会每隔1分钟,自动剔除最近3分钟内没有发送心跳的服务实例
eureka 集群节点之间是首次全量不同注册表,随后服务实例的变更是通过异步批量复制的,每当服务注册、下线、取消、状态变更时,会把这种动作通过三层队列机制,最终一次发送一批的方式同步到其他eureka 节点