SpringCloud Alibaba-Nacos[作为配置中心]

一、首先,修改 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 Idgulimall-coupon.properties 默认规则,应用名.properties

四、给应用名.properties添加任何配置

五、动态获取配置

@RefreshScope:动态获取并刷新配置

@Values(“${配置项的名}”),@ConfigurationProperties:获取配置

如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置,以前SpringBoot任何方法从配置文件中获取值,都能使用,配置中心有优先使用配置中心的

六、核心概念

1、命名空间

用于进行租户粒度的配置隔离,不同的命名空间下,可以存在相同的GroupDataID的配置。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中一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如BuyTrade)对配置集进行分组,从而区分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,让它一启动自己去配置中心中获取内容即可,可以将所有的配置都写在配置中心中。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2020-08-31 16:35  王大慧  阅读(413)  评论(0编辑  收藏  举报