Nacos快速入门指南

1. Nacos 简介

Nacos 是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台,支持:

  • 服务注册与发现:微服务实例自动注册和健康检查。
  • 配置管理:集中化管理应用配置,支持动态更新。
  • 服务管理:可视化界面管理服务及元数据。

2. 安装与启动

2.1 下载 Nacos

  • 访问 Nacos GitHub Releases 下载最新版本(如 nacos-server-2.x.x.zip)。https://github.com/alibaba/nacos/releases
  • 解压文件:
  • unzip nacos-server-2.x.x.zip cd nacos/bin

2.2 启动 Nacos

  • 单机模式(适合开发):
  • sh startup.sh -m standalone # Linux startup.cmd -m standalone # Windows
  • 访问控制台:http://localhost:8848/nacos,默认账号密码:nacos/nacos。

3. 服务注册与发现

3.1 添加依赖

在 Spring Boot 项目中添加依赖(以 Spring Cloud Alibaba 为例):

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2022.0.0.0</version>
</dependency>

3.2 配置服务注册

在 application.yml 中配置 Nacos 地址:

spring:
  application:
    name: user-service  # 服务名称
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  # Nacos 地址

3.3 启用服务发现

在启动类添加注解:

@SpringBootApplication
@EnableDiscoveryClient  // 启用服务发现
public class UserApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class, args);
    }
}

3.4 调用其他服务

使用 RestTemplate 或 OpenFeign 调用其他服务:

@RestController
public class UserController {
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/order")
    public String getOrder() {
        // 通过服务名调用(order-service 是另一个服务的名称)
        return restTemplate.getForObject("http://order-service/orders", String.class);
    }
}

4. 配置管理

4.1 创建配置文件

  1. 进入 Nacos 控制台 → 配置管理配置列表新建配置
  2. 填写配置信息:
  3. Data ID: user-service-dev.yaml(格式:{服务名}-{环境}.yaml)
  4. Group: DEFAULT_GROUP
  5. 配置内容:
  6. server: port: 8080 app: name: user-service

4.2 获取配置

在项目中添加依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2022.0.0.0</version>
</dependency>

创建 bootstrap.yml(优先级高于 application.yml):

spring:
  application:
    name: user-service  # 对应 Data ID 的前缀
  profiles:
    active: dev        # 对应 Data ID 的环境
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        file-extension: yaml  # 配置文件格式

在代码中读取配置:

@Value("${app.name}")
private String appName;

@GetMapping("/config")
public String getConfig() {
    return appName;
}

4.3 动态配置更新

Nacos 支持配置动态更新。添加 @RefreshScope 注解使配置实时生效:

@RestController
@RefreshScope
public class ConfigController {
    @Value("${app.name}")
    private String appName;
}

5. 常见问题

5.1 服务注册失败

  • 检查 Nacos 服务是否启动。
  • 确认 spring.cloud.nacos.discovery.server-addr 配置正确。

5.2 配置未生效

  • 确保 bootstrap.yml 文件存在且配置正确。
  • 检查 Data ID 和 Group 是否与 Nacos 中的配置一致。

5.3 控制台无法访问

  • 确认防火墙是否放行 8848 端口。
  • 检查启动日志是否有错误:nacos/logs/start.out

6. 注意事项

  • 版本兼容性:确保 Spring Cloud Alibaba、Spring Boot 和 Nacos 版本兼容(参考官方文档)。https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
  • 生产环境:使用集群模式部署 Nacos,并配置 MySQL 持久化(默认使用内嵌数据库)。
  • 安全:修改默认账号密码,开启鉴权(通过 application.properties 配置)。

通过以上步骤,您可以快速实现服务注册、发现与配置管理。更多高级功能(如集群部署、命名空间、配置灰度发布)可参考 Nacos 官方文档。
https://nacos.io/zh-cn/docs/what-is-nacos.html


原文链接:,转发请注明来源!