【nacos】5.1 spring cloud + Nacos 实现统一配置管理

 返回首页 > 【笔记】Spring Cloud Alibaba Nacos

1. 解决的问题

  • 配置动态更新
  • 配置集中式管理
  • 配置内容的安全性和权限
  • 不同部署环境下的配置

2. 环境:

  • idea
  • spring cloud
  • spring-cloud-alibaba nacos
  • maven
  • mqtt (客户端,服务器采用的是EMQ X 5.0 )

3. pom依赖

3.1 父级项目pom依赖


    <properties>
        <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
        <spring-cloud-alibaba-dependencies.version>2.2.8.RELEASE</spring-cloud-alibaba-dependencies.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!--spring-cloud-alibaba 依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring-cloud 分布式架构引进-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
    </dependencies>
</project>

3.2 模块中pom依赖

        <!--nacos + feign-->
        <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>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--mqtt-->
        <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
            <version>1.2.2</version>
        </dependency>
        <!-- 热部署模块 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

4.实战

4.1 配置文件

4.1.1 spring boot 配置文件加载优先级

spring boot 中两种以上文件时

  • bootstrap 优先于 application
  • Properties 优先于yaml/yml

本案例使用

  • bootstrap.yaml ---- 连接nacos注册中心和配置中心信息
  • application.yml ---- 环境配置

4.2 bootstrap.yaml

其中 

  • config-namespace: xxx-xxx-xxx-xxx-xxx 对应的是 iot 
  • spring.cloud.name: emq-client
  • spring.cloud.nacos.config.group: AIOT
  • spring.cloud.nacos.config.file-extension: yaml
nacos-server-addr: xxx.xxx.xxx.xxx:8848
discovery-namespace: xxx-xxx-xxx-xxx-xxx #建议discovery-namespace = config-namespace
config-namespace: xxx-xxx-xxx-xxx-xxx

spring:
  application:
    name: emq-client
  cloud:
    nacos:
      discovery:
        server-addr: ${nacos-server-addr} #注册中心地址
        namespace: ${discovery-namespace}
      #        ip: ${host}  #项目ip地址,当在生产环境时: 防止服务在注册中心的ip为内网地址
      config:
        auto-refresh: true # 开启自动刷新
        # 配置文件的环境
        group: AIOT
        # 配置文件的格式
        file-extension: yaml
        # 配置中心的地址
        server-addr: ${nacos-server-addr}
        # 配置文件prefix
        prefix: ${spring.application.name}
        #命名空间
        namespace: ${config-namespace}
        #预加载功能:感觉该功能没有实际效果,可能是2.1.0版本已经优化,不需要该配置
#        bootstrap:
#          enable: true # 是否开启 Nacos 配置预加载功能。默认为 false。
#          log-enable: true # 是否开启 Nacos 支持日志级别的加载时机。默认为 false。

4.3 application.yml

其中 spring.profiles.active: prod

spring:
  profiles:
    active: prod

4.4 naocs上建立配置文件

命名规范:

  • ${spring.cloud.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
  • 使用需要的文件名为 emq-client-prod.yaml
  • 配置空间为:iot
  • group: AIOT

故:需要在 iot 空间下建立 emq-client-prod.yaml 文件,分组 AIOT 中

 

5. 验证是否启动成功

  • 读取远程nacos配置日志

  •  spring boot 启动成功日志

posted @   随风落木  阅读(9)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示