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-gateway
  profiles:
    active: @activatedProperties@
    
  cloud:
    nacos:
      discovery:
        server-addr: 113.1xx.2xx.1xx:8848  #Nacos服务注册中心地址
        namespace:  @nacosNamespace@
      config:
        enabled: true
        server-addr: 113.1xx.2xx.1xx:8848  #Nacos作为配置中心地址
        file-extension: yaml               #指定yaml格式的配置
        namespace: @nacosNamespace@        #Nacos命名空间 
        group: DEFAULT_GROUP
        refresh-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版本要与引入的nacos依赖版本对应,具体可查看maven中nacos的dependecies,如下图所示:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值