Nacos的统一配置管理
Nacos的统一配置管理
- 一 项目添加nacos和bootstrap依赖
- 二 nacos客户端配置
- 2.1 创建命名空间
- 2.2 创建配置
- 三、配置bootstrap.yml
- 四 不同环境配置切换
- 步骤一:nacos中添加开发、测试配置
- 步骤二:指定bootstrap.yml中spring.profiles.active参数值
- 扩展链接
一 项目添加nacos和bootstrap依赖
Spring Cloud Alibaba、Spring Boot,Spring Cloud 版本说明
具体版本应和项目中cloudalibaba以及cloud保持一致
springboot版本为
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.2</version></parent>
<!--nacos配置中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2021.1</version></dependency><!--bootstrap启动器--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId><version>3.1.1</version></dependency>
二 nacos客户端配置
2.1 创建命名空间
命名空间主要用于区分不同项目或者隔离开发环境
2.2 创建配置
Data ID:
Data ID是配置项的唯一标识,它的命名是有一定规范的。我们在配置信息时,一定是先有了微服务客户端,根据客户端需求,才在配置中心配置的信息。
Data ID的命名规范是:
spring.application.name-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
spring.application.name
:服务名称。
${spring.profiles.active}
:是配置文件中配置的环境信息
${spring.cloud.nacos.config.file-extension}
是微服务客户端配置文件中配置的file-extension信息。
作用是指定配置中心中配置信息的格式,一般选择yml格式的。
假设微服务客户端服务名叫iam-biz,开发环境为dev。file-extension扩展格式为yml,则Data ID命名为:iam-biz-dev.yml
Group
组的概念。同一个项目环境中更细粒度的区分配置项
配置格式
配置格式的勾选要与file-extension扩展模式的配置相对应。一般选择yml格式。
然后在配置栏中写配置信息即可
三、配置bootstrap.yml
将基础配置和nacos连接信息添加到bootstrap.yml中;
spring:profiles:active: dev # 环境 dev:开发环境|test:测试环境|prod:生产环境include: propertiesapplication:name: iam-biz #服务名称main:allow-bean-definition-overriding: truecloud:nacos:discovery:server-addr: 192.168.2.217:8848 #注册中心地址config:server-addr: ${spring.cloud.nacos.discovery.server-addr} #配置中心地址file-extension: yml #后缀名group: dev #分组namespace: iam-lichunbo #命名空间ID
注意的是一定是放下bootstrap.yml中而不是application.yml。如果配置信息放在application.yml中微服务客户端连接nacos配置中心,是发生在application.yml文件读取之前去拉取的,此时并不知道application.yml中配置的是什么信息,所以只能按默认配置去连接,因此就连接localhost地址去了。
四 不同环境配置切换
有开发环境、测试环境、生产环境。那么切换不同的环境配置该如何操作呢?
步骤一:nacos中添加开发、测试配置
步骤二:指定bootstrap.yml中spring.profiles.active参数值
spring.profiles.active=dev那么就会使用nacos中iam-biz-dev.yml的配置
spring.profiles.active=test那么就会使用nacos中iam-biz-test.yml的配置
active=dev那么就会使用nacos中iam-biz-dev.yml的配置
spring.profiles.active=test那么就会使用nacos中iam-biz-test.yml的配置
注意的是案例中Group用的都是dev,实际这个叫什么并不重要;我们只需要注意在bootstrap中配置的组名要和nacos一致
扩展链接
【Spring Cloud】深入理解 Nacos 的统一配置管理,配置热更新,多环境配置共享,集群搭建