1. 概述
本文在上文 Spring cloud系列四 Eureka 之概述和服务注册中心集群的基础上,继续介绍Eureka新的内容:
- 集群重要类:PeerAwareInstanceRegistryImpl
- 新的Eureka Server节点加入集群后的影响
- 新服务注册(Register)注册时的影响
- 服务心跳(renew)
- 服务下线和剔除
- 自我保护模式
2. Eureka Server的集群同步操作
2.1. Eureka官网的架构图
下方的操作需要结合下图理解:
2.2. PeerAwareInstanceRegistryImpl
集群相关重要的类com.netflix.eureka.registry.PeerAwareInstanceRegistryImpl: 为了保证集群里所有Eureka Server节点的状态同步,所有以下操作都会同步到集群的所有服务上:服务注册(Registers)、服务更新(Renewals)、服务取消(Cancels),服务超时(Expirations)和服务状态变更(Status Changes)。以下是一些部分方法:
- syncUp:在Eureka Server重启或新的Eureka Server节点加进来的,会执行初始化,从集群其他节点中获取所有的实例注册信息,从而能够正常提供服务。当Eureka Server启动时,它会从其它节点获取所有的注册信息,如果获取同步失败,它在一定时间(此值由决定)内拒绝服务。
- replicateToPeers: 同步以下操作到所有的集群节点:服务注册(Registers)、服务更新(Renewals)、服务取消(Cancels),服务超时(Expirations)和服务状态变更(Status Changes)
- register: 注册实例,并且复印此实例的信息到所有的eureka server的节点。如果其它Eureka Server调用此节点,只在本节点更新实例信息,避免通知其他节