原理
架构图

- 服务提供者:是一个eureka client,向Eureka Server注册和更新自己的信息,同时能从Eureka Server注册表中获取到其他服务的信息。
- 服务注册中心:提供服务注册和发现的功能。每个Eureka Cient向Eureka Server注册自己的信息,也可以通过Eureka Server获取到其他服务的信息达到发现和调用其他服务的目的。
- 服务消费者:是一个eureka client,通过Eureka Server获取注册到其上其他服务的信息,从而根据信息找到所需的服务发起远程调用。
- 同步复制:Eureka Server之间注册表信息的同步复制,使Eureka Server集群中不同注册表中服务实例信息保持一致。
- 远程调用:服务客户端之间的远程调用。
- 注册:Client端向Server端注册自身的元数据以供服务发现。
- 续约:通过发送心跳到Server以维持和更新注册表中服务实例元数据的有效性。当在一定时长内,Server没有收到Client的心跳信息,将默认服务下线,会把服务实例的信息从注册表中删除。
- 下线:Client在关闭时主动向Server注销服务实例元数据,这时Client的服务实例数据将从Server的注册表中删除。
- 获取注册表:Client向Server请求注册表信息,用于服务发现,从而发起服务间远程调用。
思路
- client
- 拉取server注册表到本地。
- 注册服务。
- 初始化3个定时任务:心跳续约,定时拉取注册表,按需注册(InstanceInfoReplicator#run)。
- 发送下线。
- server
- 接受服务注册
- 接受服务心跳
- 服务剔除
- 服务下线
- 集群同步(1.启动时从peer拉取信息,2.将注册到自己的服务同步到peer
