• 【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 启动成功日志

  • 相关阅读:
    从零实现自动求导以及线性回归实例
    URLDNS利用链
    1990-2022上市公司董监高学历工资特征信息数据/上市公司高管信息数据
    基于Java毕业设计高校二手交易平台源码+系统+mysql+lw文档+部署软件
    智慧实验室系统云LIS全套源码,满足医院实验室、医院集团、独立实验室、临检中心及其它检验机构的专业化检验需求。
    【Java成王之路】EE初阶第十七篇: maven 工具
    秋招面试!学历不是问题!大专老哥浅谈阿里/腾讯/京东Java后端面试经历,轻松上岸入职京东!
    模拟前端ADC芯片LH001-91,用于开发心电、脑电医疗设备
    网络安全(黑客)自学
    GitHub 开源大厂缓存架构 Redis 优化的文档被警告,900 页全是宝贝
  • 原文地址:https://blog.csdn.net/ladymorgana/article/details/127805059