Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。在微服务架构中,它承担着"服务注册中心"的关键角色,是所有服务的"通讯录"。

nacos下载与启动

下载链接(这里使用2.5.1版本为演示):https://download.nacos.io/nacos-server/nacos-server-2.5.1.zip?spm=5238cd80.2ef5001f.0.0.3f613b7cclFfhL&file=nacos-server-2.5.1.zip

image-20260603094537411

解压之后打开路径为:nacos-server-2.5.1\nacos\bin

启动命令:startup.cmd -m standalone (在cmd命令中输入并回车)

image-20260603094650921

其中Console为注册中心的地址,或者输入:127.0.0.1:端口号/nacos/index.html

修改端口号

修改conf文件下的application.properties文件,路径为:nacos-server-2.5.1\nacos\conf

image-20260603094908237

在第23行这里可修改server.port里的端口

在Spring Cloud中使用

引入依赖

<!--在nacos中发现与注册添加下面这个依赖-->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--如果需要从nacos中拉取配置添加以下依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

注意:如果只在nacos注册中心注册与发现使用引入第一个依赖,如果需要从nacos的配置中心拉取相关依赖需要引入第二个依赖

相关配置(application.yml)

server:
  port: 8701
​
spring:
  application:
    name: service-nacos-server # nacos注册的服务名
  cloud:
    nacos:
      #注册与发现
      discovery:
        server-addr: 127.0.0.1:8848
      #配置中心
      config:
        server-addr: 127.0.0.1:8848
        #文件类型
        file-extension: yml
  # 关键配置:显式导入 Nacos 配置
  config:
    import:
      - nacos:nacos-server.yml  # 你的 Data ID
      - nacos:nacos-server  # 如果不带后缀,默认找 properties

在Spring Cloud 2021.X版本后引入了新的配置导入机制,如果 classpath 中有 Nacos Config 依赖,就必须明确声明配置导入。这是为了避免隐式行为,让配置来源更清晰。

image-20260603095353176

在创建配置里面Data ID 要与config-import-nacos里面的名称一直否则会因为找不而报错

示例

创建控制层:UserController

@RestController
@RefreshScope   // 配置修改后自动刷新
public class UserController {
    @Value("${user.max-upload-size}")
    private String maxUploadSize;
​
    @GetMapping("/config/size")
    public String showSize() {
        return maxUploadSize;
    }
}

nacos的配置内容:

user:
  max-upload-size: 10MB

访问链接:localhost:8701/config/size 返回的就是你nacos配置的内容

image-20260603095831081

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐