多环境管理

在Nacos中,通过Data IDGroupNamespace三种属性实现多环境的管理,通过这三种属性可以组合出很多种用法,官方对此也没有固定规定,因此只需要根据业务选择具体的组合方式。

本节代码将在上一节的基础上进行修改,代码示例可以查看模块alibaba-nacos-config-client-profiles

使用Data IDprofiles实现

  • Data ID对应配置文件中的spring.application.namespring.cloud.nacos.config.prefix
  • Data ID默认情况下是${spring.application.name}.properties,当同时存在prefix和name时,Data ID${spring.cloud.nacos.config.prefix}.properties;
  • 末尾的.properties可以通过spring.cloud.nacos.config.file-extension进行修改;
  • 同时,Data ID可以识别spring.profiles.active进行不同环境的配置加载,这时Data ID${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension},这也是完整的Data ID匹配规格。

第一步:在Nacos新建配置
image.png
第二步:修改bootstrap.properties中配置

  1. spring.application.name=alibaba-nacos-config-client
  2. server.port=8002
  3. spring.profiles.active=dev
  4. spring.cloud.nacos.config.server-addr=127.0.0.1:8848

第三步:curl访问HTTP接口,查看配置内容是否加载成功:

  1. wujiawei@wujiaweideMacBook-Pro ~ % curl http://localhost:8002/echo
  2. alibaba-nacos-config-client-dev.properties

使用Group实现

第一步:在Nacos中创建不同Group的配置
image.png
第二步:修改bootstrap.properties

  1. spring.application.name=alibaba-nacos-config-client
  2. server.port=8002
  3. spring.cloud.nacos.config.server-addr=127.0.0.1:8848
  4. spring.cloud.nacos.config.group=DEV_GROUP

第三步:curl请求HTTP接口

  1. wujiawei@wujiaweideMacBook-Pro ~ % curl http://localhost:8002/echo
  2. DEV_GROUP alibaba-nacos-config-client.properties

使用Namespace实现

这时最常用的配置方式,同时也是官方建议的方式,保证配置内容不会杂而混乱。
第一步:在Nacos中创建Namespace及配置
image.png
image.png
image.png
第二步:修改bootstrap.properties
其中namespace的值为命名空间ID,注意是ID

  1. spring.application.name=alibaba-nacos-config-client
  2. server.port=8002
  3. spring.cloud.nacos.config.server-addr=127.0.0.1:8848
  4. spring.cloud.nacos.config.namespace=dev

第三步:启动应用,curl访问接口

  1. wujiawei@wujiaweideMacBook-Pro ~ % curl http://localhost:8002/echo
  2. alibaba-nacos-config-client..namespace..dev

代码示例

  • Github:
  • Gitee: