一、首先,修改 pom.xml 文件,引入 Nacos Config Starter
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
二、在应用的 /src/main/resources/bootstrap.properties 配置文件中配置 Nacos Config 元数据
spring.application.name=gulimall-coupon spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=8624c855-f7ba-4958-aaf4-f5baaa128cdb spring.cloud.nacos.config.group=dev
三、需要给配置中心默认一个叫数据集(Data Id)gulimall-coupon.properties 默认规则,应用名.properties
四、给应用名.properties添加任何配置
五、动态获取配置
@RefreshScope:动态获取并刷新配置
@Values(“${配置项的名}”),@ConfigurationProperties:获取配置
如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置,以前SpringBoot任何方法从配置文件中获取值,都能使用,配置中心有优先使用配置中心的
六、核心概念
1、命名空间
用于进行租户粒度的配置隔离,不同的命名空间下,可以存在相同的Group或DataID的配置。Namespaces的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。(默认:public保留空间,默认新增的所有配置都在public空间)
1)开发、测试、生产:利用命名空间来做环境隔离
注意:在bootstrap.properties;配置上需要使用哪个命名空间下的配置
spring.cloud.nacos.config.namespace=8624c855-f7ba-4958-aaf4-f5baaa128cdb
2)每一个服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置。
2、配置集
一组相关或者不相关的配置项的集合称为配置集。在系统中,一个配置文件通常就是一个配置集,包含了系统各个方面的配置。例如,一个配置集可能包含了数据源、线程池、日志级别等配置项。
配置集ID:
Nacos中某个配置集的ID。配置集ID是组织划分配置的维度之一。Data ID通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。Data ID通常用类Java包(如com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。此命名规则非强制性。
3、配置分配
Nacos中一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如Buy或Trade)对配置集进行分组,从而区分Data ID相同的配置集。当您在Nacos上创建一个配置时,如果未填写配置分组名称,则配置分组的名称默认采用DEFAULT_GROUP。配置分组的常见场景,不同的应用使用了相同的配置类别.
七、微服务任何配置信息,任何配置文件都可以配置在配置中心中
只需要在bootstrap.properties说明加载配置中心哪些配置文件即可。
spring.application.name=gulimall-coupon spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=8624c855-f7ba-4958-aaf4-f5baaa128cdb spring.cloud.nacos.config.group=dev spring.cloud.nacos.config.ext-config[0].data-id=mybatis.yml spring.cloud.nacos.config.ext-config[0].group=dev spring.cloud.nacos.config.ext-config[0].refresh=true spring.cloud.nacos.config.ext-config[1].data-id=datasource.yml spring.cloud.nacos.config.ext-config[1].group=dev spring.cloud.nacos.config.ext-config[1].refresh=true spring.cloud.nacos.config.ext-config[2].data-id=other.yml spring.cloud.nacos.config.ext-config[2].group=dev spring.cloud.nacos.config.ext-config[2].refresh=true
总结:最终微服务只需要保留一个bootstrap.properties,让它一启动自己去配置中心中获取内容即可,可以将所有的配置都写在配置中心中。