Spring Cloud Nacos配置管理
Spring Cloud NacosNacos全称Dynamic Naming and Configuration Service,它可以用于RPC框架中服务的注册与发现也可以作为配置中心管理应用的配置.服务注册与发现使用过RPC框架同学对服务注册与发现并不陌生比如Dubbo默认使用Zookeeper作为注册中心完成服务的注册与发现而Nacos 同样可以充当注册中心的角色。Nacos 提供了多种健康检查机制确保请求总是被健康的服务器处理。配置管理Nacos 还可以作为配置中心在运行时动态修改配置而无需重启应用对于配置的修改进行历史版本管理便于回滚和审计。同时Nacos对多环境支持即不同的环境如开发、测试、生产有不同的配置Nacos 优势Nacos具有数据模型简单提供了简单便捷的控制台界面支持多种语言如 Java/Golang/Python等优势,使得在Spring Cloud 微服务组件中占有重要的一席之地Nacos 安装与使用jdk 安装 与配置Nacos 依赖JDK环境 建议使用JDK 1.8 安装完成配置好环境变量。Nocas 配置中心使用官网下载2.x版本本文下载的是nacos-server-2.4.3.tar.gzNacos 部署方式单机模式集群模式多集群模式解压后进入nacos/bin 目录 执行 -m standalone参数指定以单机模式部署。启动成功后输入http://ip:8848/nacos进入控制台可以在控制台进行配置的增删查改tar -zxvf nacos-server-2.4.3.tar.gz ./startup.sh -m standaloneNacos 接入Nacos 支持多种方式对接Open APIJava SDKNacos SpringNacos Spring BootNacos Spring CloudOpen API 方式可以通过CURL命令发送指定请求实现配置的增删查改获取配置请求URL/nacos/v1/cs/configs请求参数名称类型是否必须描述tenantstring否租户信息对应 Nacos 的命名空间ID字段。dataIdstring是配置 ID。groupstring是配置分组。通过CURL 查询配置curl -X GET http://127.0.0.1:8848/nacos/v2/cs/config?dataIdcodetonight.akgroupnacos-demonamespaceIdpublic返回{code:0,message:success,data:akserert123}发布配置请求 URL/nacos/v1/cs/configs请求参数名称类型是否必须描述tenantstring否租户信息对应 Nacos 的命名空间ID字段dataIdstring是配置 IDgroupstring是配置分组contentstring是配置内容typeString否配置类型通过CURL 发布配置curl -d dataIdnacos.example-d ‘groupDEFAULT_GROUP’-d ‘namespaceIdpublic’-d ‘contentcontentTest’-X POST ‘http://127.0.0.1:8848/nacos/v2/cs/config’Java SDK如果你的项目不是基于Spring Boot ,你也可以使用Nacos-client,当然这种方式使用起来就不那么优雅。如果你愿意也可以按照Open API格式构造Http 请求与Nacos交互,这也是Nacos 很容易支持其他语言的原因因为它支持Open API,其他语言只要构造对应的Http请求即可。Nacos-client 需要引入Pom依赖Java代码也很简单,这种使用方式比较少。dependency groupIdcom.alibaba.nacos/groupId artifactIdnacos-client/artifactId version${nacos.version}/version /dependency dependency groupIdorg.slf4j/groupId artifactIdslf4j-api/artifactId version1.7.36/version !-- 请替换为实际版本号 -- /dependency String serverAddr http://localhost:8848; String dataId nacos.example; String group DEFAULT_GROUP; Properties properties new Properties(); properties.put(serverAddr, serverAddr); ConfigService configService NacosFactory.createConfigService(properties); String content configService.getConfig(dataId, group, 5000); System.out.println(content); configService.addListener(dataId, group, new Listener() { Override public void receiveConfigInfo(String configInfo) { System.out.println(recieve1: configInfo); } Override public Executor getExecutor() { return null; } }); Thread.sleep(1000*3600);Nacos Spring CloudNacos Spring,Nacos Spring Boot 使用方式可以自行查看官方文档本文重点介绍Nacos Spring Cloud接入方式主要内容包含属性自动刷新多环境支持首先提个问题为什么需要配置中心传统的配置放到properties文件或者yaml文件中随着代码一起打包当需要修改配置时应用需要重启才生效。此外配置中包含一些敏感信息如果数据库用户名和密码这些配置放到 properties文件或者yaml文件存在安全隐患。 因此有了配置中心。配置中心配置优先级高于配置文件中配置DataIdSpring Cloud 中 dataId 格式${prefix}-${spring.profiles.active}.${file-extension}prefix如果不配置则值为spring.application.namespring.profiles.active即为当前环境对应的 profile 如果spring.profiles.active为空对应dataId 蜕化为prefix.{prefix}.prefix.{file-extension}file-exetension目前只支持properties和yaml类型配置示例一以下是Spring Cloud 一个简单配置,我们没有配置多环境那么对应的dataIdnacos-demo.properties# bootstrap.properties spring.application.namenacos-demo spring.cloud.nacos.config.server-addrhttp://127.0.0.1:8848 spring.cloud.nacos.config.namespacepublic spring.cloud.nacos.config.groupnacos-demo spring.cloud.nacos.config.file-extensionproperties多环境配置对应的dataIdnacos-demo-dev.properties# bootstrap.properties spring.application.namenacos-demo spring.cloud.nacos.config.server-addrhttp://127.0.0.1:8848 spring.cloud.nacos.config.namespacepublic spring.cloud.nacos.config.groupnacos-demo spring.cloud.nacos.config.file-extensionproperties #application.properties spring.profiles.activedev #application-dev.properties codetonight.usercodetonightjava 代码使用RefreshScope加在指定类上会自动刷新属性。本例中codetonight.user没有在配置中心配置因此取配置文件中值。codetonight.ak、codetonight.sk属于敏感信息我们将其放到配置中心达到安全管控目的。RestController RefreshScope public class NacosTestController { Value(value ${codetonight.ak}) private String ak; Value(value ${codetonight.sk}) private String token; Value(value ${codetonight.user}) private String user; GetMapping(/getInfo) public String getInfo(){ return ak token user; } }在Nacos控制台修改对应配置查询日志应用监听到变更再次请求配置已经生效总结Nacos 作为配置中心实现了配置的集中管理当配置更新时不需要重启应用立即生效同时配置的修改具有版本管理功能便于审计和回滚等操作。此外对于一些敏感信息放到配置中心通过权限控制增加安全性。

相关新闻

当学术彻底“放飞自我”,会发生什么?我分析了800篇奇葩论文

当学术彻底“放飞自我”,会发生什么?我分析了800篇奇葩论文

当学术彻底“放飞自我”,会发生什么?我利用Pyhton采集了超过800篇奇葩论文数据,发现了一个极其‘抽象’的学术宇宙。在这里,逻辑是用来放飞的,而格式是用来掩护脑洞的本次数据来自于shit期刊官网,采集了808…

2026/7/3 20:21:56 阅读更多 →
Flutter 三方库 epub_pro 的鸿蒙化适配指南 - 掌控文稿资产、精密 EPUB 治理实战、鸿蒙级阅读专家

Flutter 三方库 epub_pro 的鸿蒙化适配指南 - 掌控文稿资产、精密 EPUB 治理实战、鸿蒙级阅读专家

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 epub_pro 的鸿蒙化适配指南 - 掌控文稿资产、精密 EPUB 治理实战、鸿蒙级阅读专家 在鸿蒙跨平台应用执行高级电子出版物管理与多维文稿资产指控(如构建一个支持…

2026/7/3 0:52:32 阅读更多 →
称重装置(CAD装配图)

称重装置(CAD装配图)

称重装置的CAD装配图是机械设计领域中用于精准描述设备结构与装配关系的关键学习资料。其核心作用在于通过数字化模型直观呈现各零件的空间位置、连接方式及配合精度,为设计验证、装配指导及后续优化提供可靠依据。在称重装置的设计过程中,CAD装配图能够…

2026/5/17 9:32:01 阅读更多 →

最新新闻

AI钓鱼攻击:从原理到防御,构建企业安全免疫系统

AI钓鱼攻击:从原理到防御,构建企业安全免疫系统

1. 项目概述:当钓鱼攻击披上AI的“羊皮” 如果你还认为钓鱼邮件是那种满屏错别字、用蹩脚英文催你点链接的“垃圾”,那你的安全观念可能还停留在五年前。我干了十多年网络安全,亲眼看着攻击手段从“广撒网”的群发垃圾邮件,进化到…

2026/7/4 12:14:52 阅读更多 →
如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失

如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失

如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending…

2026/7/4 12:14:52 阅读更多 →
量子科技中的多样性与包容性实践

量子科技中的多样性与包容性实践

1. 量子科技领域为何需要关注多样性与包容性?量子计算、量子通信等量子科技正在重塑未来技术格局。与传统学科不同,量子科技本质上是一门高度交叉的领域,融合了物理学、计算机科学、材料学、工程学等多个学科。这种交叉性决定了其发展特别依赖…

2026/7/4 12:12:52 阅读更多 →
终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题

终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题

终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_…

2026/7/4 12:10:51 阅读更多 →
SaToken实战:密码加密与会话查询的深度整合与应用

SaToken实战:密码加密与会话查询的深度整合与应用

1. 项目概述:为什么我们需要深度整合密码加密与会话查询? 在任何一个需要用户登录的现代Web应用中,安全都是悬在开发者头顶的达摩克利斯之剑。我们常常会陷入一种“头痛医头,脚痛医脚”的困境:用户注册时,我…

2026/7/4 12:10:51 阅读更多 →
Appium视觉测试实战:从像素对比到智能忽略的UI自动化回归方案

Appium视觉测试实战:从像素对比到智能忽略的UI自动化回归方案

1. 项目概述:为什么我们需要视觉测试?在移动应用自动化测试的征途上,我们常常会遇到一个令人头疼的问题:功能逻辑明明跑通了,按钮能点,数据能提交,但界面却“跑偏”了。可能是某个按钮在iOS 17上…

2026/7/4 12:08:51 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻