-
服务注册:
- 当一个服务实例启动时,它会向 Nacos 服务器注册自己的信息,包括 IP 地址、端口号、元数据(如服务版本、区域信息等)。
- 服务实例使用 Nacos API 发送注册请求,Nacos 服务器接收请求并存储服务实例信息到内部数据库。
-
服务发现:
- 服务消费者需要知道如何访问服务提供者。它们通过发送服务发现请求到 Nacos 服务器来获取可用的服务实例列表。
- Nacos 服务器根据请求的服务名和可选的其他参数(如服务标签、版本等)返回一组健康状态的服务实例。
-
健康检查:
- Nacos 支持两种健康检查方式:客户端主动心跳检查和服务器端健康检查。
- 客户端心跳检查:服务实例定期发送心跳到 Nacos 服务器,表明自己的存活状态。
- 服务器端健康检查:Nacos 服务器可以配置对服务实例进行周期性的健康检查。
-
服务订阅:
- 服务消费者可以订阅一个或多个服务,当服务列表变更时,Nacos 服务器会推送变更通知给订阅者。
-
服务推送与通知:
- Nacos 使用长轮询机制来推送服务变更通知。服务消费者定期发送请求到 Nacos 服务器查询服务列表,如果服务列表有变更,Nacos 会立即响应;如果没有变更,请求会等待一段时间后超时。
- 当服务实例注册、更新或下线时,Nacos 会将变更推送给所有订阅了该服务的服务消费者。