Nacos服务注册最全详解(图文全面总结)

Nacos服务注册是微服务的核心,下面我重点来详解Nacos服务注册@mikechen

Nacos服务注册

服务注册:指的是服务实例在启动后,将自己的信息(如:服务名、IP 地址…等),注册到服务注册中心的过程。

如下图所示:

Nacos服务注册最全详解(图文全面总结)-mikechen

 

Nacos服务注册原理

在微服务架构中,一个系统往往包含几十、上百个服务,服务实例随容器动态扩缩、上下线,IP 和端口不断变化。

Nacos服务注册最全详解(图文全面总结)-mikechen

这就带来了几个挑战:

服务地址动态变化,难以硬编码维护;

服务实例弹性伸缩,调用方无法感知;

需要具备服务健康检查与故障剔除能力;

Nacos 服务注册与发现,正是为了解决这些问题而生。

Nacos作为服务注册中心,主要通过客户端与服务端的交互实现服务注册。

流程包括以下关键步骤:

Nacos服务注册最全详解(图文全面总结)-mikechen

首先,服务实例启动 → 向Nacos Server注册服务信息。

namingService.registerInstance("order-service", "192.168.1.10", 8080);

注册信息包括:

  • 服务名(例如:order-service);

  • IP 地址 + 端口(例如:192.168.1.10:8080);

  • 是否为临时实例(默认是临时);

  • 元数据(Metadata);

 

然后,存储注册信息。

Nacos 接收到注册请求后,会将服务信息写入本地内存 + 持久化存储。

 

然后,定时发送心跳 → 保持服务状态为健康。

Nacos 会在内部维护一个服务列表,并记录每个实例的最后心跳时间。

如果连续多个周期未收到心跳(默认 15 秒),Nacos 会将实例标记为不健康。

如果持续失联一段时间(默认 30 秒),实例将被剔除。

服务实例关闭 → 发送注销请求或心跳超时被剔除。

 

最后,服务调用。

服务消费者查询或订阅服务列表 → 动态获取可用实例,负载均衡调用服务实例。

评论交流
    说说你的看法