• 【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依赖

    1. <properties>
    2. <spring-cloud.version>Hoxton.SR12spring-cloud.version>
    3. <spring-cloud-alibaba-dependencies.version>2.2.8.RELEASEspring-cloud-alibaba-dependencies.version>
    4. properties>
    5. <dependencyManagement>
    6. <dependencies>
    7. <dependency>
    8. <groupId>com.alibaba.cloudgroupId>
    9. <artifactId>spring-cloud-alibaba-dependenciesartifactId>
    10. <version>${spring-cloud-alibaba-dependencies.version}version>
    11. <type>pomtype>
    12. <scope>importscope>
    13. dependency>
    14. <dependency>
    15. <groupId>org.springframework.cloudgroupId>
    16. <artifactId>spring-cloud-dependenciesartifactId>
    17. <version>${spring-cloud.version}version>
    18. <type>pomtype>
    19. <scope>importscope>
    20. dependency>
    21. dependencies>
    22. project>

    3.2 模块中pom依赖

    1. <dependency>
    2. <groupId>com.alibaba.cloudgroupId>
    3. <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    4. dependency>
    5. <dependency>
    6. <groupId>com.alibaba.cloudgroupId>
    7. <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
    8. dependency>
    9. <dependency>
    10. <groupId>org.springframework.cloudgroupId>
    11. <artifactId>spring-cloud-starter-openfeignartifactId>
    12. dependency>
    13. <dependency>
    14. <groupId>org.eclipse.pahogroupId>
    15. <artifactId>org.eclipse.paho.client.mqttv3artifactId>
    16. <version>1.2.2version>
    17. dependency>
    18. <dependency>
    19. <groupId>org.springframework.bootgroupId>
    20. <artifactId>spring-boot-devtoolsartifactId>
    21. <optional>trueoptional>
    22. 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
    1. nacos-server-addr: xxx.xxx.xxx.xxx:8848
    2. discovery-namespace: xxx-xxx-xxx-xxx-xxx #建议discovery-namespace = config-namespace
    3. config-namespace: xxx-xxx-xxx-xxx-xxx
    4. spring:
    5. application:
    6. name: emq-client
    7. cloud:
    8. nacos:
    9. discovery:
    10. server-addr: ${nacos-server-addr} #注册中心地址
    11. namespace: ${discovery-namespace}
    12. # ip: ${host} #项目ip地址,当在生产环境时: 防止服务在注册中心的ip为内网地址
    13. config:
    14. auto-refresh: true # 开启自动刷新
    15. # 配置文件的环境
    16. group: AIOT
    17. # 配置文件的格式
    18. file-extension: yaml
    19. # 配置中心的地址
    20. server-addr: ${nacos-server-addr}
    21. # 配置文件prefix
    22. prefix: ${spring.application.name}
    23. #命名空间
    24. namespace: ${config-namespace}
    25. #预加载功能:感觉该功能没有实际效果,可能是2.1.0版本已经优化,不需要该配置
    26. # bootstrap:
    27. # enable: true # 是否开启 Nacos 配置预加载功能。默认为 false。
    28. # log-enable: true # 是否开启 Nacos 支持日志级别的加载时机。默认为 false。

    4.3 application.yml

    其中 spring.profiles.active: prod

    1. spring:
    2. profiles:
    3. 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 启动成功日志

  • 相关阅读:
    springBoot
    寒假训练——第四周(素数|因数)
    如何用java实现发邮件功能
    VCS & Design Compiler(1)
    计算机毕业设计(附源码)python重工教师职称管理系统
    中国DevOps平台市场,华为云再次位居领导者位置
    【flexbox弹性布局学习指南】CSS热门布局方案
    TikTok的全球影响:跨文化、跨国界的短视频文化
    【案例实战】SpringBoot整合Redis连接池生成图形验证码
    C#实现QQ窗体的步骤和总结
  • 原文地址:https://blog.csdn.net/ladymorgana/article/details/127805059