开发者

SpringBoot3.x集成nacos并实现多环境配置的操作步骤

目录
  • 一、springboot版本
  • 二、nacos安装部署
  • 三、springboot3.x集成nacos
    • 1、添加依赖
    • 2、配置文件中添加nacos配置,以常规包为例,如果是cloud的包,同理参考后面cloud的配置即可。
      • (1)单个环境配置
      • (2)多环境配置,以开发环境dev和生产环境pro为例
      • (3)spring cloud nacos配置参考
    • 3、启动项目

    一、springboot版本

    springboot3.0.x 和springboot3.1.x 可直接使用nacos-config-spring-boot-starter 包。

    SpringBoot3.x集成nacos并实现多环境配置的操作步骤

    springboot >=3.2.x 需要使用spring-cloud-starter-alibaba-nacos-config包,因为常规包在我发布该文时nacos官方还没更新,已更新的版本只支持到3.1.x,cloud的包2024年4月份进行了更新,可以支持3.2.x及以上版本。

    SpringBoot3.x集成nacos并实现多环境配置的操作步骤

    二、nacos安装部署

    nacos1.x安装、操作请查看官方文档Nac编程客栈os 快速开始 | Nacos

    使用nacos1.x版本的用户请忽略【安装部署】后面的内容,直接跳到 二、springboot3.x集成nacos部分。

    springboot3.x集成Nacos2.x升级和安装、操作请查看官方文档Nacos 2.0 升级文档 | Nacos,权限配置请参照Authorization | Nacos

    nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。

    端口与主端口的偏移量描述
    98481000客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
    98491001服务端gRPC请求服务端端口,用于服务间同步等
    7848-1000Jraft请求服务端端口,用于处理服务端间的Raft相关请求

    如果存在防火墙或者nginx端口转发问题,需要进行相应的端口 暴露配置。如在nginx中,在已经暴露8848(x)的基础上,需要额外暴露9848(x+1000)9849和7848端口为服务端之间的通信端口,请勿暴露到外部网络环境和客户端测。

    三、springboot3.x集成nacos

    1、添加依赖

    nacos1.x版本用户,请添加如下依赖

            <!--nacos配置中心-->
            <dependency>
                <groupId>com.alibaba.boot</groupId>
                <artifactId>nacos-config-spring-boot-starter</artifactId>
                <version>0.2.3</version>
            </dependency>

    注意,springboot3.x集成该版本启动项目时能从nacos加载配置文件信息,但是通过@NacosValue注解取不到值, 需要把@NacosValue的地方替换为@Value注解,但是这样的话就不能动态刷新配置了,只能重启项目生效,只能是权益之计,想要彻底兼容的话就看nacos官方出不出兼容的nacos1.x版本的包了,不然只能升级到nacos2.x版本。

    nacos2.x版本用户,如果你的springboot版本是3.0.x或者3.1.x版本,请添加下面的依赖

            <!--nacos配置中心-->zcPGpjDsem
            <dependency>
                <groupId>com.alibaba.boot</groupId>
                <artifactId>nacos-config-spring-boot-starter</artifactId>
                <version>0.3.0-RC</version>
            </dependency>

    nacos2.x版本用户,如果你的springboot版本是3.2.x及以上,请添加cloud的包

            <!--nacos配置中心-->
           <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
                <version>2023.0.1.2</version>
           </dependency>

    2、配置文件中添加nacos配置,以常规包为例,如果是cloud的包,同理参考后面cloud的配置即可。

    (1)单个环境配置

    nacos:
      config:
        #是否开启Nacos配置预加载
        bootstrap:
          enable: true
        data-id: demo-boot-v3
        type: yaml
        group: DEFAULT_GROUP
        auto-refresh: true
        server-addr: 127.0.0.1:8848
        namespace: 0f72f102-23c1-4176-869f-91f31c42a07e
        bootstrap:
          log:
            enable: true
        #如果开启认证的话需要用户名和密码,未开启的话请注释
        username: nacos
        password: nacos

    (2)多环境配置,以开发环境dev和生产环境pro为例

    spring:
      profiles:
        #指定要加载的配置
        active: dev
     
    nacos:
      config:
        #是否开启Nacos配置预加载
        bootstrap:
          enable: true
        data-id: demo-boot-v3
        type: yaml
        grou编程客栈p: DEFAULT_GROUP
        auto-refresh: true
     
    ---
    #开发环境dev
    spring:
      config:
        activate:
          on-profile: dev
    nacos:
      config:
        #nacos的地址,替换成测试环境的实际地址即可
        server-addr: 127.0.0.1:8848
        #命名空间,替换为测试环境的实际命名空间即可
        namespace: 0f72f102-23c1-4176-869f-91f31c42a07e    
        bootstrap:
          log:
            enable: true
        #如果开启认证的话需要用户名和密码
        username: nacos
        password: nacos
     
    ---
    #生产环境pro
    spring:
      config:
        activate:
          on-profile: pro
    nacos:
      config:
        #nacos的地址,替换成线上的实际地址即可
        server-addr: 127.0.0.1:8848
        #命名空间,替换为线上的实际命名空间即可
        namespace: 0f72f102-23c1-4176-869f-91f31c42a07e
        bootstrap:
          log:
            enable: true
        #如果开启认证的话需要用户名和密码
        username: nacos
        password: nacos

    (3)spring cloud nacos配置参考

    spring:
      profiles:
        active: local
      config:
        import:
          #使用nacos配置 demo-boot-v3对应上面的data-id
          nacos:demo-boot-v3
      cloud:
        nacos:
          config:
            file-extension: yaml
            group: DEFAULT_GROUP
            refresh-enabled: true
     
    ---
    # local
    spring:
      config:
        activate:
          on-profile: local
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848
            namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c
            #如果开启认证的话需要用户名和密码,未开启的话请注释
            username: nacos
            password: nacos
     
    ---
    # dev
    spring:
      config:
        activate:
          on-profile: dev
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848
            namespace: 8d582ff3-f890-4a67-b75phpc-e6c20a86534c
            #如果开启认证的话需要用户名和密码,未开启的话请注释
            username: nacos
            password: nacos
     
    ---
    # pro
    spring:
      config:
        activate:
          on-profile: pro
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848
            namespace: 8d582ff3-f890-4a67-b75c-e6c20a86534c
            #如果开启认证的话需要用户名和密码,未开启的话请注释
         python   username: nacos
            password: nacos

    注意这里nacos:demo-boot-v3是一个整体值,中间的冒号后面没有空格,他们的 key是:spring.config.import,demo-boot-v3换成你的data-id即可。

    3、启动项目

    SpringBoot3.x集成nacos并实现多环境配置的操作步骤

    以上就是SpringBoot3.x集成nacos并实现多环境配置的操作步骤的详细内容,更多关于SpringBoot3.x nacos多环境配置的资料请关注编程客栈(www.devze.com)其它相关文章!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜