Nacos 注册中心:安装、服务注册与发现
Nacos(Dynamic Naming and Configuration Service)是 Alibaba 开源的注册中心 + 配置中心一体组件,通过 spring-cloud-starter-alibaba-nacos-discovery 与 Spring Cloud 集成,是国内微服务最常用的注册中心。本章完成从"装一个 Nacos Server"到"两个服务互相注册、互相可见"的全过程。
第一步:安装并启动 Nacos Server
到 Nacos 官方发布页下载 nacos-server 发行包并解压(写作时官方主流为 3.x,2.4/2.5 亦可,本教程以 3.x 为主、差异处会注明)。Nacos 3.x 安装包内置运行脚本,无需编译,前提是已装 JDK。Windows 双击或执行 bin 目录下的启动脚本,Linux/macOS 执行 shell 脚本,单机开发一律用 standalone 模式:
# Windows(bin 目录下)
startup.cmd -m standalone
# Linux / macOS
sh startup.sh -m standalone
启动日志写在 logs/start.out,看到 "Nacos started successfully" 即成功。与 2.x 不同,Nacos 3.x 默认开启鉴权,初始账号 nacos/nacos,控制台与数据服务拆分为不同端口,控制台默认端口 8080,入口地址以官方快速开始为准;数据面仍以 8848 提供 OpenAPI,客户端 gRPC 端口为 9848/9849。若部署 2.x,控制台入口为 http://127.0.0.1:8848/nacos。版本差异细节一律以官方部署文档为准。
第二步:工程引入依赖
本教程使用 spring-cloud-alibaba 2025.0.0.0 线,父工程或 pom 中通过 BOM 管理版本,业务模块只写坐标不写版本:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
第三步:配置注册
在 application.yml 中配置应用名与注册中心地址:
spring:
application:
name: user-service
cloud:
nacos:
discovery:
server-addr: localhost:8848
# namespace: dev # 多环境/隔离用命名空间,见第 11 章
# group: DEFAULT_GROUP
server:
port: 8081
新版 Spring Cloud 注册默认开启,无需 @EnableDiscoveryClient 注解。以相同方式把 order-service(端口 8082)也配好并启动。
第四步:验证注册与发现
登录控制台,在"服务管理/服务列表"中应能看到 user-service、order-service 及其实例;点击实例详情可查看 IP、端口、健康状态与权重。这说明服务已成功上报并通过心跳维持在线。停止一个服务(先试优雅停机)再刷新列表,观察实例摘除的延迟,可以直观感受第 02 章讲的"注销与失联"差异。
服务间调用:先跑通再说原理
order-service 里用最朴素的 RestTemplate 验证发现能力,下一章再引入 OpenFeign 与负载均衡:
@RestController
public class CallController {
@GetMapping("/call")
public String call() {
// 服务名会被 LoadBalancer 解析为真实实例地址
return restTemplate.getForObject("http://user-service/api/user/1", String.class);
}
}
常见问题
一是版本不匹配:SCA 内置的 Nacos 客户端版本与 Server 大版本差距过大时可能出现注册失败或控制台数据异常,升级前先看官方版本兼容说明;二是端口占用:8848/9848/9849(及 3.x 控制台端口)需放通;三是仅本机调试时,注意实例注册的是内网 IP,跨机器访问需配置 ip 参数(以官方文档为准)。
小结
Nacos 注册中心的使用路径很顺:下载解压启动 Server、引入 discovery starter、配 server-addr,服务即自动注册;消费者用"服务名 + LoadBalancer"即可按名调用。注册、心跳、客户端缓存等机制已在第 02 章铺垫,下一章横向对比三种注册中心,帮你判断什么场景该选谁。