一、在Nacos中实现多环境管理
1、用配置集ID(Data ID)名称来区分不同的环境
2、用配置组(group)来区分不同的环境
3、用命名空间(namespace)来区分不同的环境
二、通过Data ID命名来区分环境
没有指定服务的环境名称spring.profiles.active,dataId 的完整格式如下:
${spring.application.name}.${ spring.cloud.nacos.config.file-extension}
指定服务的环境名称spring.profiles.active,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置
spring.profiles.active 即为当前环境对应的 profile
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
nacos配置列表中建立account-service-dev.yaml 、account-service-pro.yam
修改配置文件
server:
port: 8010
spring:
application:
name: account-service
profiles:
active: dev
cloud:
nacos:
config:
server-addr: 192.168.2.6:8001
file-extension: yaml
discovery:
server-addr: 192.168.2.6:8001
创建一个TestController接口,方便用于调试刮观察结果
系统指定环境为dev启动,调用接口
三、通过group区分环境
分别建立DEV_GROUP、PRO_GROUP
修改配置文件,指定spring.cloud.nacos.config.group的值
server:
port: 8010
spring:
application:
name: account-service
cloud:
nacos:
config:
server-addr: 192.168.2.6:8001
file-extension: yaml
group: DEV_GROUP
discovery:
server-addr: 192.168.2.6:8001
spring.cloud.nacos.config.group指定为 DEV_GROUP调用接口
spring.cloud.nacos.config.group指定为 PRO_GROUP调用接口
四、通过Namespace区分
在nacos命名空间中根据实际需要创建命名空间
在配置列表不同命名空间下分别创建account-service.yaml
修改配置文件,指定spring.cloud.nacos.config.namespace的属性值
server:
port: 8010
spring:
application:
name: account-service
cloud:
nacos:
config:
server-addr: 192.168.2.6:8001
file-extension: yaml
namespace: 67a7c0ea-a8fc-41cb-a24b-c1bb772553b9
discovery:
server-addr: 192.168.2.6:8001
指定spring.cloud.nacos.config.namespace命名空间pro的id,调用接口
指定spring.cloud.nacos.config.namespace命名空间test的id,调用接口
不指定spring.cloud.nacos.config.namespace默认为public,调用接口
五、总结一下
通过上面三种方案的介绍,:
DataID: 适用于项目不多,服务量少的情况。
Group:实现方式简单,但是容易与DataID方案发生冲突,仅适合于本地调试
Namespace:实现方式简单,配置管理简单灵活,同时可以结合DataID共同使用,推荐这种方案