相关资料:
官方SCA(服务组件框架) Nacos Config 共享配置方案设计:
Spring Cloud Alibaba Nacos Config:
Spring Cloud Alibaba Nacos Discovery:
NacosConfig区分不同环境下的配置:
一.使用Data ID和profiles进行区分
配置列表样例:
具体操作:
1.在bootstrap.properties配置文件中加入配置: spring.profiles.active=环境名
2.在Nacos配置列表中新建配置
3.配置发布后启动项目看一下日志
o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'nacos-config-client-TEST.properties', group: 'DEFAULT_GROUP'
这里表明,在加入spring.profiles.active 配置后,Data ID变成了nacos-config-client-TEST.properties
4.关于Data ID的匹配规则:
${spring.cloud.nacos.config.prefix}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
前缀-环境名.配置文件类型
spring.profile.active 默认无
spring.cloud.nacos.config.file-extension 默认.properties
二.使用Group区分
配置列表样例:
具体操作:
1.在bootstrap.properties配置文件中加入配置: spring.cloud.nacos.config.group=组名
2.在Nacos配置列表中新建配置
3.配置发布后启动项目查看日志
o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'nacos-config-client.properties', group: 'DEV_GROUP'
可以看出Group已经改变
4.说明:
spring.cloud.nacos.config.group 默认为DEFAULT_GROUP
三.使用Namespace进行环境隔离:
样例:
具体操作:
1.在Nacos命名空间中新建命名空间
2.新建命名空间
3.确认后
4.此时返回配置列表,可以看到已经配置好的命名空间
5.切换到TEST空间,并添加一条配置
6.在bootstrap.properties配置文件中加入配置: spring.cloud.nacos.config.namespace=命名空间ID
7.说明:
(1).启动项目后,日志中不会显示与Namespace相关的信息
(2).默认的Namespace为public并且不可以删除
NacosConfig共享配置:
一.创建几个配置并发布:
二.加载多个配置方式一:
1.在bootstrap.properties配置文件中加入配置: spring.cloud.nacos.config.ext-config
2.启动项目,看看日志
o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'log.properties', group: 'DEFAULT_GROUP'
o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'global.properties', group: 'DEFAULT_GROUP'
o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'nacos-config-client.properties', group: 'DEFAULT_GROUP'
根据日志可以看出一共加载了三个配置,而且有加载顺序
3.测试略,结果就是没有refresh属性的新增配置无法动态刷新
三.加载多个配置方式二:
1.在bootstrap.properties配置文件中加入配置: spring.cloud.nacos.config.shared-dataids
2.启动项目,看看日志
o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'log.properties', group: 'DEFAULT_GROUP'
o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'global.properties', group: 'DEFAULT_GROUP'
o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'nacos-config-client.properties', group: 'DEFAULT_GROUP'
三个配置都加载了,加载顺序和方式一的一样