Nacos 安装与服务注册
约 483 字大约 2 分钟
布欧-Lewyon
2026-05-15
首页 › Spring Cloud › 服务注册与发现
Nacos 安装
# Docker 一键启动
docker run -d \
--name nacos \
-p 8848:8848 \
-p 9848:9848 \
-e MODE=standalone \
-e JVM_XMS=256m \
-e JVM_XMX=512m \
nacos/nacos-server:v2.3.0
# 访问控制台
# http://localhost:8848/nacos
# 默认账号:nacos / nacos服务注册
添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>配置
spring:
application:
name: user-service # 服务名,注册到 Nacos 的标识
cloud:
nacos:
discovery:
server-addr: localhost:8848 # Nacos 地址
namespace: public # 命名空间
group: DEFAULT_GROUP # 分组
register-enabled: true
ephemeral: true # 临时实例(心跳续约)启动类
@SpringBootApplication
@EnableDiscoveryClient // 启用服务注册与发现
public class UserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplication.class, args);
}
}// 健康检查接口(Nacos 会定时调用)
@RestController
@RequestMapping("/actuator")
public class HealthController {
@GetMapping("/health")
public Map<String, String> health() {
return Map.of("status", "UP");
}
}验证注册
# 启动服务后访问 Nacos 控制台 → 服务管理 → 服务列表
# 可以看到 user-service 已经注册
# 通过 API 查看
curl -X GET "http://localhost:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=10"服务元数据
spring:
cloud:
nacos:
discovery:
metadata:
version: v1
author: team
env: dev// 代码中获取本实例元数据
@Autowired
private NacosRegistration registration;
registration.getMetadata(); // {version=v1, author=team, env=dev}临时实例 vs 永久实例
| 类型 | 配置 | 说明 |
|---|---|---|
| 临时实例 | ephemeral: true(默认) | 心跳检测,宕机自动剔除 |
| 永久实例 | ephemeral: false | 人工注册/摘除,适合数据库等服务 |
生产服务用临时实例,宕机后 Nacos 自动剔除,防止请求打到不可用的服务。
小结
- Nacos Docker 启动:
nacos/nacos-server:v2.3.0,端口 8848(HTTP)+ 9848(gRPC)。 - 服务注册:
nacos-discoverystarter +@EnableDiscoveryClient+spring.application.name。 - Nacos 控制台查看所有注册的服务和实例。
- 临时实例通过心跳保活,宕机自动摘除。
- 元数据传递版本、环境等信息。
上一节:Spring Cloud 概览与版本选型 下一节:服务发现与调用
