本文将分别从 Nacos 临时实例和 Nacos 非临时实例分析 Nacos 注册中心的原理,如何配置实例为临时或非临时请参考 “Nacos 临时和非临时实例”。
下图是 Nacos 临时实例和注册中心的原理:
上图中:
(1)服务提供者启动时主动将服务信息注册到注册中心。
(2)服务消费者定时从注册中心拉取服务注册列表,并缓存到本地。
(3)服务消费者根据获取到服务列表,选择合适的服务,然后发起远程调用。
(4)服务提供者会定时向 Nacos 发送心跳包,告知 Nacos,自己还活着。如果 Nacos 长时间没有接收到心跳,则主动剔除该服务。
(5)如果 Nacos 注册中心中的服务发生变更,则主动通知服务消费者。
注意:Nacos 支持主动拉取服务注册列表,同时还支持 Nacos 主动通知消费则,服务信息发生变更。
下图是 Nacos 非临时实例和注册中心的原理:
上图中:
(1)服务提供者启动时主动将服务信息注册到注册中心。
(2)服务消费者定时从注册中心拉取服务注册列表,并缓存到本地。
(3)服务消费者根据获取到服务列表,选择合适的服务,然后发起远程调用。
(4)Nacos 服务注册中心会定时主动询问服务提供者,服务是否可用。如果可用,则将服务标记为健康。如果服务不可用,则将服务标记为不健康。
(5)如果 Nacos 注册中心中的服务发生变更,则主动通知服务消费者。
注意:Nacos 支持主动拉取服务注册列表,同时还支持 Nacos 主动通知消费则,服务信息发生变更。