Nacos配置中心

通过Nacos Server和spring-cloud-starter-alibaba-nacos-config实现配置的动态变更

1. 接入Nacos Config

  1. 新建模块cloudalibaba-config-nacos-client3377
  2. 添加bootstrap.yml和application.yml文件:
yml
# nacos配置

spring:

  application:

    name: nacos-config-client

  cloud:

    nacos:

      discovery:

        server-addr: localhost:8848 #Nacos服务注册中心地址

      config:

        server-addr: localhost:8848 #Nacos作为配置中心地址

        file-extension: yaml #指定yaml格式的配置



# nacos端配置文件DataId的命名规则是:

# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}

# 本案例的DataID是:nacos-config-client-dev.yaml
yml
server:

  port: 3377



spring:

  profiles:

    active: dev # 表示开发环境

      #active: prod # 表示生产环境

    #active: test # 表示测试环境
3. 添加NacosConfigClientController和NacosConfigClient3377:
java
@RestController

@RefreshScope //在控制器类加入@RefreshScope注解使当前类下的配置支持Nacos的动态刷新功能。

public class NacosConfigClientController {

    @Value("${config.info}")

    private String configInfo;



    @GetMapping("/config/info")

    public String getConfigInfo() {

        return configInfo;

    }

}
java
@EnableDiscoveryClient

@SpringBootApplication

public class NacosConfigClient3377 {

    public static void main(String[] args)

    {

        SpringApplication.run(NacosConfigClient3377.class,args);

    }

}
## 2. 在Nacos中添加配置信息 ### 2.1 DataId设置原则 ![Alt text](/language/springcloud/images/Snipaste_20250317_154624.png) 总结下来:`${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}` ### 2.2 在Nacos页面配置 点击创建设置: ![Alt text](/language/springcloud/images/Snipaste_20250317_154908.png) 填写相关配置: ![Alt text](/language/springcloud/images/Snipaste_20250317_155100.png) 启动cloudalibaba-config-nacos-client3377,进行测试: ![Alt text](/language/springcloud/images/Snipaste_20250317_155438.png)

3. Nacos配置刷新

测试自动刷新,修改Nacos上面的配置: Alt text 再次请求接口测试,发现配置已经生效:
Alt text Nacos会记录配置文件的历史版本默认保密30天,此外还有一键回滚功能,回滚操作将会触发配置更新 Alt text

4. Nacos多项目配置管理

4.1 Nacos配置设计理念

Nacos一共分为3个层次:Namespace,Group,DataId。 Alt text

4.2 DataId配置方案

使用默认空间public+默认分组DEFAULT GROUP+新建DatalD来配置项目。

  1. 修改application.yml文件:
    Alt text
  2. 在Nacos上面添加新的配置nacos-config-client-test.yaml Alt text
  3. 重启cloudalibaba-config-nacos-client3377,请求接口测试 Alt text

4.3 Group配置方案

使用默认空间public+新建PROD_GROUP+新建DatalD来配置项目。

  1. 修改bootstrap.yml文件:
    Alt text
  2. 在Nacos上面添加新的配置nacos-config-client-prod.yaml Alt text
  3. 修改application.yml文件:
yml
server:
  port: 3377

spring:
  profiles:
    active: prod # 表示生产环境
  1. 重启cloudalibaba-config-nacos-client3377,请求接口测试 Alt text

4.4 Namespace配置方案

使用Prod_Namespace+PROD GROUP+DatalD来配置项目。

  1. 添加Namespace:
    Alt text
  2. 添加Namespace为Prod_Namespace:
    Alt text
  3. 在配置管理选择dav_center, 添加配置:
    Alt text
  4. 配置DataID:
    Alt text
  5. 修改bootstrap.yml
yml
spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
      config:
        server-addr: localhost:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置
        group: PROD_GROUP
        namespace: Prod_Namespace
  1. 重启cloudalibaba-config-nacos-client3377,请求接口测试 Alt text

评论