当前位置: 首页 > news >正文

nacos+maven实现多环境配置

  1. maven引入nacos依赖,须包含有配置中心config
<!--        服务注册/发现-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency><!--        配置中心来做配置管理-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

maven中使用nacos配置dev,test,prod,使用不同的命名空间实现隔离:

<!-- 配置文件管理 -->
<!--统一配置开发测试生产环境-->
<profiles><profile><!--开发环境--><id>dev</id><!-- 加了这个,默认选中 --><activation><activeByDefault>true</activeByDefault></activation><!--以下属性用于 bootstrap.yml 文件中 可通过 @activatedProperties@ 获取配置的变量--><properties><activatedProperties>dev</activatedProperties><nacosNamespace>shop-dev</nacosNamespace></properties></profile><profile><!--测试环境--><id>test</id><properties><activatedProperties>test</activatedProperties><nacosNamespace>shop-test</nacosNamespace></properties></profile><!--生产环境--><profile><id>prod</id><properties><activatedProperties>prod</activatedProperties><nacosNamespace>shop-prod</nacosNamespace></properties></profile>
</profiles>

 刷新maven后,在右侧maven面板的Profiles可以看到配置的环境分支,当需要切换环境时,取消原有分支的勾选,并勾选要切换到的分支名,刷新maven,就可以实现无需修改代码动态切换环境分支了。如下图所示:

2.在项目src/main/resources目录下创建bootstrap.properties或bootstrap.yml文件,这里使用 bootstrap.yml文件,文件中写下如下内容:

spring:application:name: shop-gatewayprofiles:active: @activatedProperties@cloud:nacos:discovery:server-addr: 113.1xx.2xx.1xx:8848  #Nacos服务注册中心地址config:enabled: trueserver-addr: 113.1xx.2xx.1xx:8848  #Nacos作为配置中心地址file-extension: yaml               #指定yaml格式的配置namespace: @nacosNamespace@        #Nacos命名空间 group: DEFAULT_GROUPrefresh-enabled: true              #启用动态刷新

这里补充说明一下,为什么创建 bootstrap.yml文件而不是application开头的文件是缘于springboot项目启动读取文件的优先级、先后顺序:bootstrap.properties>bootstrap.yml>application.properties>application.yml

3.本地配置一个bootstrap.yml文件,其他文件放到nacos配置中心方便修改后无须重启服务器(必要时还是须手动重启) 。登录nacos控制台,主要用到配置管理、服务管理和命名空间3个菜单的功能。

在命名空间依次创建开发测试生产的命名空间。nacos主要通过命名空间ID识别,如果不填写,默认会生成类似UUID那样的格式,我们可以自定义命名方便快速识别如:shop-dev、shop-test、shop-prod。

4.命名空间创建好后,到配置列表创建配置文件,选中要创建配置文件的命名空间,如shop-dev,创建配置文件,这里需要注意Data ID命名,一定要带后缀,如.yaml .properties,不带后缀会导致后台服务识别不了,如果启动服务控制台打印一堆类似Ignore the empty nacos configuration and get it based on dataId的信息,启动失败,很有可能是Data ID命名不符合nacos规范,导致识别不了,从而导致无法正常启动。

nacos官方建议使用的命名规则:应用名+环境名+文件的后缀,应用名和环境名之间用“-”连接起来,文件的后缀建议使用.yaml或.properties。应用名取项目中对应微服务的bootstrap.yml文件中spring.application.name的值,环境名取我们上面maven pom文件中定义的dev/test/prod的名字,示例:shop-gateway-dev.yaml。如果没有环境分支,则直接命名为shop-gateway.yaml。

此外还需注意服务器安装的nacos版本要与引入的nacos依赖版本对应,具体可查看maven中nacos的dependecies,如下图所示:

经过以上步骤,就可实现nacos+maven组合实现多环境配置。 


http://www.mrgr.cn/news/64123.html

相关文章:

  • SSM学习 day02
  • 【网络】HTTP(超文本传输协议)详解
  • World of Warcraft [CLASSIC][80][the Ulduar] BOSS 01
  • Python代码优雅解析PDF文件
  • day51 739.每日温度 496.下一个最大温度 | 503.下一个最大温度||
  • 迷茫内耗的一天
  • 广义加性模型
  • 短剧开发新模式:从内容创新到市场突围的全攻略
  • 仅需百元/年,助你快速构建高效私有的Node.js图床
  • Yocto中MACHINE 和 DISTRO是输入,IMAGE 是他们组合的产物
  • 华为云安装docker
  • Docker — 跨平台和环境部署
  • Linux:防火墙和selinux对服务的影响
  • docker复现pytorch_cyclegan
  • 【C/C++】字符/字符串函数(0)——由ctype.h提供
  • Linux云计算 |【第五阶段】CLOUD-DAY8
  • 前端将网页转换为pdf并支持下载与上传
  • 我的作品·导航
  • Java复习29(PTA)
  • SpringBoot+FileBeat+ELK8.x版本收集日志
  • java基础知识面试题四多线程
  • 手写实现call,apply,和bind方法
  • 【MATLAB代码】三个CT模型的IMM例程,各CT旋转速率不同,适用于定位、导航、目标跟踪
  • 2024阿里云CTF Web writeup
  • 房贷利率定价调整机制变更的一点理解
  • Linux 进程终止 进程等待