一.前置条件
需注意nacos版本跟所用项目是否匹配!!!如果是这个版本建议下载nacos 版本为2.3.2
二.将配置修改进nacos
1.application.yaml添加如下配置
--- #################### 配置中心相关配置 ####################
spring:
cloud:
config:
- optional:classpath:application-${spring.profiles.active}.yaml # 加载【本地】配置
- optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml # 加载【Nacos】的配置
2.dev文件修改
开发环境yaml只保留以下文档,其他全部迁移到nacos,需注意名称必须为 服务名称-环境名称.yaml
--- #################### 注册中心 + 配置中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: 127.0.0.1:8848 # Nacos 服务器地址
username: # Nacos 账号
password: # Nacos 密码
discovery: # 【配置中心】配置项
namespace: dev # 命名空间。这里使用 dev 开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
metadata:
version: 1.0.0 # 服务实例的版本号,可用于灰度发布
config: # 【注册中心】配置项
namespace: dev # 命名空间。这里使用 dev 开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
3.最终优化,可将相关配置放到最外层pom文件,动态读取,改动最小
最外层prom文件,修改
<!-- nacos及项目环境版本配置管理 -->
<profiles>
<profile>
<!-- 开发环境 -->
<id>dev</id>
<properties>
<spring.profile>dev</spring.profile>
<nacos.metadata.version>1.0.0</nacos.metadata.version>
<nacos.server.address>127.0.0.1:8848</nacos.server.address>
<nacos.server.group>DEFAULT_GROUP</nacos.server.group>
<nacos.server.userName></nacos.server.userName>
<nacos.server.password></nacos.server.password>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 测试环境 -->
<id>test</id>
<properties>
<spring.profile>dev</spring.profile>
<nacos.metadata.version>1.0.0</nacos.metadata.version>
<nacos.server.address>127.0.0.1:8848</nacos.server.address>
<nacos.server.group>DEFAULT_GROUP</nacos.server.group>
<nacos.server.userName></nacos.server.userName>
<nacos.server.password></nacos.server.password>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<!-- 生产环境 -->
<id>prod</id>
<properties>
<spring.profile>prod</spring.profile>
<nacos.metadata.version>1.0.0</nacos.metadata.version>
<nacos.server.address>127.0.0.1:8848</nacos.server.address>
<nacos.server.group>DEFAULT_GROUP</nacos.server.group>
<!-- 1.生产环境必须集群部署 2.账号密码必须重置 -->
<nacos.server.userName>nacos</nacos.server.userName>
<nacos.server.password>123456</nacos.server.password>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
需注意,此处必须在build设置文件过滤 否则子文件无法识别@符号
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 关闭过滤 -->
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<!-- 引入所有 匹配文件进行过滤 -->
<includes>
<include>application*</include>
<include>bootstrap*</include>
<include>logback*</include>
</includes>
<!-- 启用过滤 即该资源中的变量将会被过滤器中的值替换 -->
<filtering>true</filtering>
</resource>
</resources>
其他子环境可这样操作,配置:
例如dev环境:
--- #################### 注册中心 + 配置中心相关配置 ####################
spring:
cloud:
nacos:
server-addr: @nacos.server.address@ # Nacos 服务器地址
username: @nacos.server.userName@ # Nacos 账号
password: @nacos.server.password@ # Nacos 密码
discovery: # 【配置中心】配置项
namespace: @spring.profile@ # 命名空间。这里使用 dev 开发环境
group: @nacos.server.group@ # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
metadata:
version: @nacos.metadata.version@ # 服务实例的版本号,可用于灰度发布
config: # 【注册中心】配置项
namespace: @spring.profile@ # 命名空间。这里使用 dev 开发环境
group: @nacos.server.group@ # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
其他主文件可按需动态修改,例如:
此文章,关联本人gitee提交评论:
https://gitee.com/zhijiantianya/yudao-cloud/issues/IB5DCF