配置中心Nacos
一、作用
1、为了解决下述问题
-
配置文件相对分散
-
配置文件无法区分环境
-
配置文件无法实时更新
2、如何解决呢?
-
把项目中各种配置全部都放到一个集中的地方进行统一管理,并提供一套标准的接口
-
需要获取配置的时候,就来配置中心的接口拉取自己的配置。
-
配置中心参数有更新时,能够通知到微服务实时同步最新的配置信息,使之动态更新。
二、如何使用nacos
1、添加依赖
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
2、配置中心地址配置
配置nacos配置中心的位置
3、在nacos中写配置文件
需要注意的是关于配置的命名:一定要加文件的后缀名,比如properties。
4、项目启动时默认查找应用在注册中心的默认配置
application.name+ profiles.active + 扩展名
application.name
application.name+扩展名
5、以多维度的方式动态管理配置
命名空间
分组:具体是用类似数组中的数字来加以区分的
分环境
# 所有配置中心的加载配置都写在此文件中
# public是默认名称空间 配置可以省略
# 加载的不是默认配置文件 必须配置
# 加载指定名称空间的配置: 一个项目只能指定一个名称空间
spring.cloud.nacos.config.namespace=479c772a-ceb7-48ae-8855-a91141303c8a
# 一个配置文件的一组配置
# 要加载的配置中心的非默认配置文件的名称
spring.cloud.nacos.config.extension-configs[0].data-id=service-redis.properties
# 配置文件的分组
#一组配置文件用一个数字,像这里的0和1
spring.cloud.nacos.config.extension-configs[0].group=GROUP_1
spring.cloud.nacos.config.extension-configs[0].refresh=true
# 一个配置文件的一组配置
# 要加载的配置中心的非默认配置文件的名称
spring.cloud.nacos.config.extension-configs[1].data-id=service-jdbc.properties
spring.cloud.nacos.config.extension-configs[1].refresh=true
上述实例解读:
1、refresh=true,可以达到实时刷新的效果
三、杂七杂八
1、在controller中可以通过@Value来读取配置信息
2、为了达到实时刷新的效果,可以在controller类上加上注解@RefreshScope,这个是配合上面那给读取配置信息一起使用的。
3、如何理解在application.yml中一定要配置的下述信息
spring:
profiles:
active: dev
# 运行环境: 配置中心加载默认配置时使用、日志文件日志配置
``