
Eureka 注册中心大致原理

1. 注册服务:服务提供方在启动时,会向Eureka Server发送注册请求,将自己的信息注册到Eureka Server。这些信息包括服务名、IP地址、端口号等。Eureka Server会将这些信息存储在注册表中。
2. 获取服务:服务消费方在需要调用某个服务时,会向Eureka Server发送获取服务实例的请求。Eureka Server会返回可用的服务实例列表给消费方。消费方可以根据负载均衡策略选择其中一个实例进行服务调用。
3. 心跳机制:Eureka客户端会周期性地向Eureka Server发送心跳请求,以告知自己的存活状态。这样Eureka Server可以根据心跳信息判断服务实例的健康状态。如果Eureka Server在一定时间内没有收到某个客户端的心跳请求,就会将该客户端从注册表中移除。
4. 服务剔除和恢复:当服务实例发生故障或下线时,Eureka客户端会停止发送心跳请求,Eureka Server会在一定时间内检测到心跳缺失,并将该实例从注册表中剔除。当服务实例恢复后,重新发送注册请求,Eureka Server会将其重新添加到注册表中。
5. 服务同步和复制:Eureka采用了去中心化的设计,每个Eureka Server实例都是相互独立的,它们之间通过复制注册表的方式实现数据同步。当有新的服务实例注册或注销时,Eureka Server会将这些变更信息广播给其他Eureka Server实例,以保持注册表的一致性。
Eureka的底层实现通过Eureka Server作为注册中心,服务提供方将自己的信息注册到Eureka Server,服务消费方从Eureka Server获取可用的服务实例列表,并进行服务调用。通过心跳机制、服务剔除和恢复以及注册表的同步和复制,Eureka能够实现可靠的服务发现。具体来说,当服务提供方启动时,它会向Eureka Server发送注册请求,将自己的信息注册到注册表中。
Eureka Server会定期检查注册表中的服务实例,如果发现某个实例的心跳缺失,就会将其从注册表中剔除。这样可以确保只有健康的服务实例被返回给消费方。
当服务消费方需要调用某个服务时,它会向Eureka Server发送获取服务实例的请求。Eureka Server会返回可用的服务实例列表,消费方可以根据负载均衡策略选择其中一个实例进行调用。
如果某个服务实例发生故障或下线,Eureka Server会在一定时间内检测到心跳缺失,并将其从注册表中剔除。当服务实例恢复后,重新发送注册请求,Eureka Server会将其重新添加到注册表中,使其可被消费方发现。