尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
手把手教你使用Nacos配置中心!
Nacos整合了注册中心和配置中心使用起来非常方便这篇文章主要介绍Nacos配置中心的使用。新建配置启动Nacos服务后进入注册中心配置页面如下图点击上图中红框里面的加号进入新建配置页面如下图上图Data ID的完整格式如下${prefix}-${spring.profiles.active}.${file-extension}说明如下prefix默认是spring.application.name的值可以通过配置项 spring.cloud.nacos.config.prefix在配置文件中配置。spring.profiles.active即为当前环境对应的profile。当 spring.profiles.active 为空时对应的连接符-也将不存在dataId的拼接格式变成 {file-extension}file-exetension 为配置内容的文件格式目前只支持properties和yaml类型可以通过配置项 spring.cloud.nacos.config.file-extension在配置文件中配置。这里我创建一个Data ID内容如下图这里使用的spring.profiles.active是devbootstrap.properties的配置如下spring.application.namenacos-producer spring.cloud.nacos.config.file-extensionproperties增加下面这个Controller类进行测试Controller RequestMapping(config) RefreshScope public class ConfigController { Value(${useLocalCache}) private boolean useLocalCache; RequestMapping(value /get, method GET) ResponseBody public boolean get() { return useLocalCache; } }在浏览器输入下面的URL后输出 true更改之后输出也会跟着变化http://localhost:8083/config/getRefreshScope这个注解可以让应用动态刷新配置多环境实际开发中我们会有多套环境比如在我本地有dev、test、prod三套环境Nacos使用namespace来进行多环境和多租户的隔离。Nacos默认的namespace是public。下面是官方对namespace的描述用于进行租户粒度的配置隔离。不同的命名空间下可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离例如开发测试环境和生产环境的资源如配置、服务隔离等。可以通过下图进入命名空间页面添加一个命名空间如下图命名空间ID可以不填系统会自动生成按照上图我创建了三个namespace。这样在【配置管理】-【配置列表】中添加配置时就会出现刚刚配置的namespace如下图这里我选择 dev 进行添加配置。如下图配置一个testnamespacedev 的配置因为使用了namespace就必须在配置文件bootstrap.properties中指定我们使用了哪个namespace比如在dev环境的bootstrap.properties文件中增加如下配置spring.cloud.nacos.config.namespacead0738cd-b595-4885-a4e5-03f547d11fa0这时改一下测试Controller增加下面配置Controller RequestMapping(config) RefreshScope public class ConfigController { Value(${testnamespace}) private String testnamespace; RequestMapping(value /getEnv, method GET) ResponseBody public String getEnv() { return testnamespace; } }浏览器输入下面配置输出 dev可见 namespace 配置生效了。http://localhost:8083/config/getEnv业务隔离如果不同的业务系统需要进行配置隔离比如服务A、服务B都有数据库、redis、mq等相关配置配置名称是一样的怎么进行隔离呢Nacos提供了group进行隔离我们看一下官方描述Nacos 中的一组配置集是组织配置的维度之一。通过一个有意义的字符串如 Buy 或 Trade 对配置集进行分组从而区分 Data ID 相同的配置集。当您在 Nacos 上创建一个配置时如果未填写配置分组的名称则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场景不同的应用或组件使用了相同的配置类型如 database_url 配置和 MQ_topic 配置。这里我对serviceA和serviceB做了数据库配置如下图是serviceB的配置配置之后serviceA和serviceB配置列表如下图这时serviceA和serviceB需要在bootstrap.properties中指定group如下是serviceA的配置spring.cloud.nacos.config.groupserviceA这时在测试Controller中增加下面代码Controller RequestMapping(config) RefreshScope public class ConfigController { Value(${spring.datasource.max-idle}) private String maxIdle; RequestMapping(value /getMaxIdle, method GET) ResponseBody public String getMaxIdle() { return maxIdle; } }使用下面url测试后输入 10http://localhost:8083/config/getMaxIdle共享配置如果一个新的应用想要共享其他应用的配置比如上面serviceA可以共享serviceB的配置是否可以呢Nacos是支持配置共享的。我们创建两个共享配置 serviceA.properties 和 serviceB.properties如下图其中serviceA.properties的配置内容如下spring.datasource.max-idle10serviceB.properties的配置内容如下spring.datasource.min-idle5我在当前的应用中共享这两个配置就需要在bootstrap.properties中增加下面的配置spring.cloud.nacos.config.shared-configs[0].dataIdserviceA.properties spring.cloud.nacos.config.shared-configs[0].groupDEFAULT_GROUP spring.cloud.nacos.config.shared-configs[0].refreshtrue spring.cloud.nacos.config.shared-configs[1].dataIdserviceB.properties spring.cloud.nacos.config.shared-configs[1].groupDEFAULT_GROUP spring.cloud.nacos.config.shared-configs[1].refreshtrue启动应用后在浏览器输入下面url页面响应 10http://localhost:8083/config/getMaxIdle在浏览器输入下面url页面响应 5http://localhost:8083/config/getMinIdle注意:共享配置要加.properties或者.yaml的后缀否则访问不到。
RELATED

相关推荐

context-mode 上下文管理:原理、范式与 AI 编程落地实践

context-mode 上下文管理:原理、范式与 AI 编程落地实践

在 AI 辅助编程越来越普及的今天,context-mode 这个概念逐渐从一个小众技巧变成了每个重度使用者都绕不开的课题。简单来说,context-mode 就是把 AI 的上下文窗口当作一种有限资源来管理,针对不同任务场景切换不同的上下文组织方式&#xff0…

📅 2026/10/29 5:28:58
大模型上下文治理:四种模式的原理、应用与踩坑

大模型上下文治理:四种模式的原理、应用与踩坑

很多兄弟第一次听到 context-mode 这个说法,大概率是在排查对话机器人答非所问、token 账单爆炸,或者研究大模型 API 的调参文档时遇到的。老实说,这不是一个严格意义上的官方术语,而是大家在实践中对一类问题的解决方案的统称&am…

📅 2026/10/29 5:28:58
go-echarts opts.XAxis 实战避坑指南:时间/分类/数值轴配置要点

go-echarts opts.XAxis 实战避坑指南:时间/分类/数值轴配置要点

1. 这不是一份“API文档搬运工”指南,而是一线开发者用血泪踩坑后整理的 opts.XAxis 实战手册 你是不是也经历过这样的时刻:在 Go 项目里接入 go-echarts,想把时间序列数据按天展示,结果 X 轴上一堆重复的“2024-01-01”&#xf…

📅 2026/10/29 5:28:58
MORE NEWS

更多资讯

📰

2024年三款主流五笔输入法深度横评:词库、皮肤与云同步

五笔输入法这个圈子,说大不大,说小也不小。我用了快十二年的五笔,从最早在旧电脑上折腾各种输入法,到后来帮身边同事配置、给家里人装机,前前后后经手的五笔方案没有二十套也有十五六套了。2024年这一年,我…

📰

AI论文写作工具书匠策的六大核心功能解析

1. 论文写作的痛点与AI解决方案论文写作一直是学术界永恒的痛点。从选题构思到文献综述,从实验设计到结果分析,每个环节都让研究者们头疼不已。特别是对于非英语母语的研究者,语言表达更是横亘在学术发表路上的一座大山。最近两年&#xff0c…

📰

数据驱动与关键字驱动自动化测试框架设计指南

1. 自动化测试框架设计概述在软件测试领域,数据驱动和关键字驱动是两种主流的自动化测试框架设计方法。这两种方法都能显著提升测试效率,但实现思路和适用场景各有不同。作为一名有多年自动化测试经验的工程师,我将分享如何从零开始设计这两种…

📰

AXI4从机写通道设计:握手时序、outstanding与RTL实现

简介:这份资源围绕AXI4总线协议展开,面向SOC设计、FPGA开发及嵌入式方向的学习者与工程师,帮助其系统理解AMBA家族中这一高性能、低功耗总线的工作机制。内容从协议特点切入,涵盖地址与控制信号同数据分阶段、非对齐传输、突发式传…

📰

MT7620A+MT7612E原理图拆解:DDR2、PCIe与射频调试关键点

简介:这份 MT7620AM7612E 路由器 AP 原理图面向无线路由器、AP 硬件设计与调试人员,也适合嵌入式硬件学习者梳理 MediaTek 无线方案。图纸围绕 MT7620A 主控与 MT7612E 5G 射频展开,覆盖 CPU、DDR2 存储器、SPI Flash、UART 串行口、PCIe、LE…

📰

OpenShell 深度解析:从事件流到插件协议,打造可编程的现代命令行环境

1. OpenShell 这个项目到底在做什么1.1 从项目名字里能读出什么OpenShell 这个项目名字拆开来看就很有意思:Open 意味着开放、开源、可扩展,Shell 意味着这是一个人与机器打交道的最底层入口。把这两个词拼在一起,它本质上指的是一个“开放的…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬