Nacos作为服务配置中心实战
目录1、Nacos作为配置中心-基础配置1.1 新建cloudalibaba-config-nacos-client3377模块1.2 pom.xml1.2 YML文件1.2.1 为什么配置要配置两个yml文件1.2.2 bootstrap.yml1.2.3 application.yml1.3 主启动类1.4 业务类1.5 在Nacos中添加配置信息1.6 测试2、Nacos作为配置中心-分类配置2.1 上面的配置存在什么问题2.2 Nacos的图形化管理界面2.3 NamespaceGroupData ID三者关系为什么这么设计2.3.1 是什么2.3.2 三者关系2.4 三种方案加载配置2.4.1 DataID方案2.4.2 Group方案2.4.3 Namespace方案1、Nacos作为配置中心-基础配置1.1 新建cloudalibaba-config-nacos-client3377模块1.2 pom.xmldependencies !--nacos-config-- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-config/artifactId /dependency !--nacos-discovery-- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency !--web actuator-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-actuator/artifactId /dependency !--一般基础配置-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-devtools/artifactId scoperuntime/scope optionaltrue/optional /dependency dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId optionaltrue/optional /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency /dependencies1.2 YML文件1.2.1 为什么配置要配置两个yml文件Nacos同springcloud-config一样在项目初始化时要保证先从配置中心进行配置拉取 拉取配置之后才能保证项目的正常启动。springboot中配置文件的加载是存在优先级顺序的bootstrap优先级高于application。1.2.2 bootstrap.yml# nacos配置 server: port: 3377 spring: application: name: nacos-config-client cloud: nacos: discovery: server-addr: localhost:8848 #Nacos服务注册中心地址 config: server-addr: localhost:8848 #Nacos作为配置中心地址 file-extension: yaml #指定yaml格式的配置 # ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}1.2.3 application.ymlspring: profiles: active: dev # 表示开发环境1.3 主启动类EnableDiscoveryClient SpringBootApplication public class NacosConfigClientMain3377 { public static void main(String[] args) { SpringApplication.run(NacosConfigClientMain3377.class, args); } }1.4 业务类ConfigClientControllerRestController RefreshScope //在控制器类加入RefreshScope注解使当前类下的配置支持Nacos的动态刷新功能。 public class ConfigClientController { Value(${config.info}) private String configInfo; GetMapping(/config/info) public String getConfigInfo() { return configInfo; } }通过使用Spring Cloud原生注解RefreshScope实现配置自动更新。1.5 在Nacos中添加配置信息Nacos匹配规则文档:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html公式:spring.application.name−{spring.profiles.active}.我们新增一个配置我们当下程序中的配置和配置中心文件的对应关系如下1.6 测试启动前需要在nacos客户端-配置管理-配置管理栏目下有对应的yaml配置文件运行cloud-config-nacos-client3377的主启动类调用接口查看配置信息http://localhost:3377/config/info用的的确是远程配置中心中的信息。测试动态刷新我们先修改配置中心的version4访问http://localhost:3377/config/info发现配置已经更新了比以前Spring Cloud Congfigeureka_Spring Cloud Bus的配置方便多了。2、Nacos作为配置中心-分类配置2.1 上面的配置存在什么问题问题1实际开发中通常一个系统会准备dev开发环境test测试环境prod生产环境。如何保证指定环境启动时服务能正确读取到Nacos上相应环境的配置文件呢问题2一个大型分布式微服务系统会有很多微服务子项目每个微服务项目又都会有相应的开发环境、测试环境、预发环境、正式环境…那怎么对这些微服务配置进行管理呢2.2 Nacos的图形化管理界面配置管理界面命名空间界面2.3 NamespaceGroupData ID三者关系为什么这么设计2.3.1 是什么类似Java里面的package名和类名 最外层的namespace是可以用于区分部署环境的Group和DataID逻辑上区分两个目标对象。2.3.2 三者关系NamespacepublicGroupDEFAULT_GROUP, 默认Cluster是DEFAULTNacos默认的命名空间是publicNamespace主要用来实现隔离。比方说我们现在有三个环境开发、测试、生产环境我们就可以创建三个Namespace不同的Namespace之间是隔离的。Group默认是DEFAULT_GROUPGroup可以把不同的微服务划分到同一个分组里面去Service就是微服务一个Service可以包含多个Cluster集群Nacos默认Cluster是DEFAULTCluster是对指定微服务的一个虚拟划分。比方说为了容灾将Service微服务分别部署在了杭州机房和广州机房这时就可以给杭州机房的Service微服务起一个集群名称HZ给广州机房的Service微服务起一个集群名称GZ还可以尽量让同一个机房的微服务互相调用以提升性能。最后是Instance就是微服务的实例。2.4 三种方案加载配置2.4.1 DataID方案指定spring.profile.active和配置文件的DataID来使不同环境下读取不同的配置默认空间默认分组新建dev和test两个DataID。新建dev配置DataID新建test配置DataID测试先使用dev环境测试访问http://localhost:3377/config/info再使用test环境测试访问http://localhost:3377/config/info2.4.2 Group方案通过Group实现环境区分新建Group在nacos图形界面控制台上面新建配置文件DataIDbootstrap.yml在config下增加一条group的配置即可。可配置为DEV_GROUP或TEST_GROUPapplication.yml访问测试http://localhost:3377/config/info2.4.3 Namespace方案新建dev/test的Namespace注意下面的命名空间ID回到服务管理-服务列表查看在dev命名空间下新建3个配置项.bootstrap.yml,这里在namespace属性上配置命名空间的IDapplication.yml上面的配置代表这里我们要访问的是dev命名空间下(上面配置的命名空间ID是dev的)TEST_GROUP组中的nacos-config.client-dev.yaml配置文件。

相关新闻

12-综合案例-软件过程实战演练

12-综合案例-软件过程实战演练

第 12 章 综合案例:OOS 订单系统全生命周期实战本章把前 11 章的方法串到同一个项目的时间线上,展示"每个阶段做什么、产出什么、常见坑是什么"。它是全系列的"总装配车间":前 11 章的零件在这里装配成整车。学习目标 将需求、设计、编码、测试、配置、管理…

2026/10/13 3:11:46 阅读更多 →
第六篇:KVM性能优化与调优指南

第六篇:KVM性能优化与调优指南

KVM 性能优化指南:让虚拟机跑出物理机的性能这是 KVM 虚拟化从入门到实战 系列的第 6 篇。虚拟机"能用"只是第一步,生产环境要求"好用、够快"。这篇从 CPU、内存、磁盘、网络四个维度教你调优。一、CPU 优化1. 使用 virtio CPU 模型…

2026/10/13 3:11:46 阅读更多 →
11-DevOps与持续交付

11-DevOps与持续交付

第 11 章 DevOps 与持续交付 学习目标 理解 DevOps 的文化内核与"闭环"思想掌握 CI/CD 流水线的阶段与门禁了解容器化、基础设施即代码(IaC)的基本概念掌握发布策略(蓝绿、金丝雀、特性开关)理解可观测性(日志/指标/追踪)与 SRE 的可靠性工程熟悉 DORA 四大指标掌握事…

2026/10/13 3:11:46 阅读更多 →

最新新闻

darknet运行报错libopencv_highgui.so.3.2缺失?动态库排查与解决全攻略

darknet运行报错libopencv_highgui.so.3.2缺失?动态库排查与解决全攻略

直接跑./darknet就报错error while loading shared libraries: libopencv_highgui.so.3.2,这种动态库缺失的问题,估计每个搞深度学习目标检测的人都被它堵过一阵子。明明编译都过了,运行却翻车,查了半天也不知道到底哪里没对上。如…

2026/10/13 4:02:58 阅读更多 →
AnyPS5:面向PS5主机的本地化系统工具链设计与实现

AnyPS5:面向PS5主机的本地化系统工具链设计与实现

项目标题本身“AnyPS5”未提供足够上下文,但结合命名惯例、技术社区常见实践及合规安全边界,可明确判断:这是一个面向 PlayStation 5 主机的本地化工具类项目代号,聚焦于主机端系统级功能增强、本地环境适配或用户侧体验优化&…

2026/10/13 4:02:58 阅读更多 →
并查集动态维护连通块大小:‘星球联盟‘题解与易错点

并查集动态维护连通块大小:‘星球联盟‘题解与易错点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 4:02:58 阅读更多 →
AI原生IDE与插件深度对比:Cursor、Trae、通义灵码能力边界与选型指南

AI原生IDE与插件深度对比:Cursor、Trae、通义灵码能力边界与选型指南

这两年AI编程工具的变化速度,快得有点不讲道理。我回想最早用插件式AI补全的时候,代码行预测已经够惊艳了;但现在的AI原生IDE和新一代编程插件,已经把范围从“猜你下一个单词”扩展到了“替你改文件、跑命令、做收尾”。Cursor、T…

2026/10/13 4:02:58 阅读更多 →
GEO优化实战:让DeepSeek、Qwen、豆包、Kimi主动引用你的内容

GEO优化实战:让DeepSeek、Qwen、豆包、Kimi主动引用你的内容

上周我把同一个问题同时丢给 DeepSeek、Qwen、豆包、Kimi,问的是某工业软件厂商的产品优势。四个助手给出的答案里,只有两个提到了这个品牌,引用来源几乎没有交集;其中一个完整转述了官网页面上的一句话,另一个却把品牌…

2026/10/13 4:02:58 阅读更多 →
基于三菱PLC的自动配料控制系统设计:双速给料与落差补偿实战

基于三菱PLC的自动配料控制系统设计:双速给料与落差补偿实战

做自动配料控制系统,绕不开两件事:PLC的选型,和配料流程里那些让人头疼的细节——飞料、秤漂、配方切换、粘度变化导致的给料差异。这个“基于三菱PLC的自动配料控制系统的设计”项目,从需求拆解、硬件选型、控制逻辑到现场调试完…

2026/10/13 4:01:58 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →