Nacos支持三种配置加载方方案
Nacos支持Namespace + group + data ID的配置解决方案
Namespace方案
通过命名空间实现环境区分
下面是配置实例:
1、创建命名空间:
命名空间—>创建命名空间:
创建三个命名空间,分别为dev,test和pre
2、回到配置列表中,能够看到所创建的三个命名空间
下面我们需要在dev命名空间下,创建gulimall-coupon.properties配置规则:
3、测试:
并没有使用我们在dev命名空间下所配置的规则,而是使用的是public命名空间下所配置的规则,
这是怎么回事呢?
"gulimall-coupon.properties",默认就是public命名空间中的内容中所配置的规则。
4、指定命名空间
如果想要使得我们自定义的命名空间生效,需要在“bootstrap.properties”文件中,指定使用哪个命
名空间:
spring.cloud.nacos.config.namespace=00bf4f79-4103-4752-af8b-abff134b1d46
这个命名空间ID来源于我们在第一步所创建的命名空间
5、重启“gulimall-coupon”,再次测试ok
但是这种命名空间的粒度还是不够细化,对此我们可以为项目的每个微服务module创建一个命名
空间。
6、为所有微服务创建命名空间
7、回到配置列表选项卡,克隆pulic的配置规则到coupon命名空间下
打开配置:
8、修改gulimall-coupon下的bootstrap.properties文件,添加如下配置信息
spring.cloud.nacos.config.namespace=b2041d1f-b8f1-45d4-9373-b0ce4027a28d
这里指明的是,读取时使用coupon命名空间下的配置。
9、重启“gulimall-coupon”,测试ok
DataID方案
通过指定spring.profile.active和配置文件的DataID,来使不同环境下读取不同的配置,读取配置
时,使用的是默认命名空间public,默认分组(default_group)下的DataID。
默认情况,Namespace=public,Group=DEFAULT GROUP,默认Cluster是DEFAULT
通过指定spring.profiles.active=dev
可以指定xxx-dev.properties
的配置文件
Group方案
通过Group实现环境区分
实例:通过使用不同的组,来读取不同的配置,还是以上面的gulimall-coupon微服务为例
1、coupon下新建“gulimall-coupon.properties”,将它置于“tmp”组下
2、修改“bootstrap.properties”配置,添加如下的配置
spring.cloud.nacos.config.group=tmp
注掉是错误的,要namespace保留
3、重启“gulimall-coupon”,测试ok
实际开发中,group的名字为dev、test、pre