SpringCloudAlibaba——Nacos 微服务注册+配置功能组件使用教程
目录一. Nacos是什么二. Nacos注册中心功能怎么用三. Nacos服务分级存贮模型四. NacosRule负载均衡五. Nacos服务权重配置六. Nacos环境隔离七. Nacos与Eureka的区别其它微服务组件文章合集有需要的小伙伴可跳转观看SpringCloud——Eureka 微服务注册中心组件使用教程SpringCloudAlibaba——Nacos 微服务注册配置功能组件使用教程SpringCloud——OpenFeign 微服务远程调用组件使用教程SpringCloud——gateway 微服务网关组件使用教程SpringCloud——Ribbon 微服务负载均衡原理解析一. Nacos是什么Nacos是Alibaba推出的一款全新的可以替代Eureka注册中心的微服务组件之一。我们都知道在做微服务项目时我们可以通过Eureka将各个服务注册进去完成服务的拉取调用那么我们的Nacos也是一个服务注册中心。而且Nacos不仅可以作为一个注册中心还可以当作配置中心来使用直接可以替换掉我们之前所使用的 SpringCloudConfig 组件可以说是一个顶俩此外Nacos还有一些附加的功能属性这里就不再一一举例了我们直接进入正题。二. Nacos注册中心功能怎么用想要使用Nacos这款分布式组件首先我们要下载它下载的过程可能有些繁琐耗时这里就不展示了没有下载的可以去搜索相关博客进行下载。在微服务项目中想要使用Nacos完成功能模块的注册简单分为一下几步1启动Nacos安装好我们的Nacos之后打开nacos文件中的bin文件夹点击启动就可以了这里要注意使用单机启动因为Nacos默认为集群启动。如果不知道怎么改有两个办法看我演示方法一使用命令行的形式还是进入我们nacos文件的bin目录文件下如下所示输入cmd回车会出现黑窗口命令行在黑窗口中输入startup.cmd -m standalone 翻译过来就是以单机模式启动启动成功如下图方式二修改文件配置使用编辑模式打开我们的启动器 startup.cmd 文件把文件中的集群改成单机set MODE“standalone”就可以了这里我已经改好了改过之后保存仍然双击这个文件就可以启动了启动成功之后页面和方式以是一样的。2在父工程中方添加Spring-Cloud-Alibaba依赖!--nacos的管理依赖-- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-alibaba-dependencies/artifactId version2.2.5.RELEASE/version typepom/type scopeimport/scope /dependency这里面的版本可不是乱用的每个alibaba组建的版本所对用的springboot版本和springcloud版本都是有联系的如果你的与我不一致可以去alilbababa官网搜索与自己版本一致的使用否则后期可能会出现一些奇怪的小bug3添加Nacos客户端依赖!-- nacos客户端依赖包 -- dependency groupIdcom.alibaba.cloud/groupId artifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency这里的客户端依赖要在每一个微服务项目的pom.xml文件中都要引入否则Nacos是不会注册它们的。4修改yml文件spring: cloud: nacos: server-addr: localhost:8848 # nacos端口地址在pom文件中添加依赖之后还要在各个项目的yml文件中配置nacos的地址和端口因为我的是本机所以就写成了localhost但是在实际开发中nacos都是集群配置每一个nacos都要写真实的ip和端口端口号不改默认就是8848.5启动项目测试完成了上述依赖配置和文件配置我们就可以进行测试了打开浏览器输入localhost:8848如下图所示这里我已经注册成功了几个实例点击详情还可以查看各个实例的详细信息。三. Nacos服务分级存贮模型在我们的nacos中它还添加了一个服务分级存贮模型的概念什么意思呢我们都知道一个微服务项目是非常庞大的可能我们的一个业务会有很多的模块在部署的时候我们可以把它部署在同一台机器上一个服务下面对应多个实例这就好比是把所有的鸡蛋放在同一个篮子里。如下图所示但是有一个问题如果有一天机房出现故障了那业务不就停掉了吗这肯定是不行的那该怎么办呢nacaos中就设置了分级存储模型添加了一个集群的概念。在之前我们的一个服务可以对应多个实例但现在我们的一个服务可以对应若干个集群集群下面又对应多个实例在中间加了一层如下所示当我们的业务越做越大我们可以在多个城市部署多个集群就算未来有一天某个机房出故障了那也只是其中的一个集群挂掉了但另外的集群仍然可以运作对我们的业务不会造成较大影响。那么在nacos中怎样设置分级存储模型呢很简单我们只需要在yml文件中设置一个属性就可以了nacos: discovery: cluster-name: SZ我们在yml文件中nacos的下一级设置一个discovery的属性这里有一个cluster-name就是用来设置集群名称的名字可以随便起配置好之后我们重启项目在浏览器中再去看nacos点击我们配置的一个实例点击详情这里就会显示我们刚才配置的集群名称“SZ”四. NacosRule负载均衡我们知道在Eureka中我们可以配置负载均衡规则在nacos中也是可以配置负载均衡规则的。配置方法也是在yml文件中userservice: ribbon: NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule因为我们的orderservice业务调用了userservice业务所以要在orderservice的yml文件中配置调用userservice时的负载均衡规则。而且当我们配置了NacosRule之后它会默认优选选择同集群的机器访当同集群的机器都出现故障访问不了时它才会访问同业务的其他集群并会爆出跨集群访问警告但不会报错此外NacosRule是随机负载均衡。五. Nacos服务权重配置当我们设置了集群之后请求会到达我们的多台设备nacos会根据随机负载均衡去挑选一台设备。但是有些激起他们的性能是有差异的假设有两台机器机器A性能好机器B性能差我们希望机器A能多处理一些请求机器B能少处理一些请求怎么做呢我们就可以通过设置服务权重来实现在nacos控制台如下图点击一个实例我们可以点击编辑设置其权重所有实例默认都为1权重越小被随机访问的概率越低就能达到我们的目的。另外当我们权重调成0时是无法被访问的我们就可以在实际开发中做到一个平滑的升级。六. Nacos环境隔离因为我开在开发时有开发环境有生产环境有测试环境。怎么样能将它们隔开呢这里就可以用到我们Nacos的环境隔离怎么做呢很简单第一步第二步第三步第四步在yml文件中进行配置如下我么还是在orderservice业务的yml文件下discovery下方配置namespace属性即可namespace的值为随机生成的id。完成上述步骤之后重启服务当我们再查询订单时就查不到了也因为他们的namespace不一样被隔离在了两个环境下。七. Nacos与Eureka的区别Eureka注册中心是AP更加注重可用性我们的服务消费者会调用服务提供者并把服务提供者列表缓存起来每隔30s会再次从Eureka拉去一次更新如果在30s内有服务挂掉Eureka是不会主动提醒服务消费者的就会造成不一致性而且Eureka发现有服务挂掉之后是不会把它从服务列表中剔除的而是等它恢复正常。Nacos是APCP既可以选择AP又可以选择CP。在Nacos中所有的实例默认都是临时实例当所有实例都是临时实例时nacos和eureka一样都是AP当nacos中有非临时实例时就会转变成CP。服务提供者因为在Nacos中我们可以为一个实例设置是永久实例还是临时实例。它们两个在做健康检测时是不太一样的。如果是临时实例也是通过心跳总检测与Eureka一样每隔一段时间发送一次心跳发送频率比Eureka要快当它挂掉之后Nacos会把它从服务列表中剔除。如果是非临时实例Nacos会主动向非临时实例发送请求询问它是否还健康可用当它挂掉之后Nacos不会把它剔除而是将它标记为不健康状态等它恢复正常。服务消费者Eureka采用的是Pull拉取的方式消费者会从Eureka注册中心中拉取自己所需要的服务列表并短暂的缓存起来这样下次再调用同一个服务时就不需要再次拉取了而是直接从缓存服务列表中拿到消费即可Nacos是采用PullPush(拉取和推送)除了Pull和Eureka一样之外多了一个Push(推送)的功能Nacos每隔一段时间会主动将服务列表推送给消费者Nacos每隔一段时间去更新服务列表而且当我们有服务挂掉之后nacos会马上推送消息给服务消费者告诉它有所变更保证了服务的一致性。

相关新闻

为什么说交大MTT是国内技术转移硕士优选-全国首个学位点五力培养全解

为什么说交大MTT是国内技术转移硕士优选-全国首个学位点五力培养全解

2026国内技术转移硕士(MTT)项目怎么选?多维剖析优质MTT报考方向 伴随国内科技创新体系持续完善,科技成果转化被纳入国家核心发展战略,市场对于复合型技术转移人才的缺口逐步扩大。在此行业背景下,技术转移硕…

2026/7/23 18:08:55阅读更多 →
AI系统指令设计:核心要素与实战技巧

AI系统指令设计:核心要素与实战技巧

1. 系统指令(System Prompt)的本质与价值在AI交互领域,System Prompt就像导演给演员的剧本大纲。它不直接参与对话,而是为整个交互设定基调和规则。去年调试一个客服机器人时,我发现同样的用户问题,仅修改S…

2026/7/23 18:08:55阅读更多 →
RAG技术构建AI分身:解决读课文与长对话记忆问题

RAG技术构建AI分身:解决读课文与长对话记忆问题

1. 项目概述:打造专属AI分身的关键挑战在构建基于RAG(检索增强生成)技术的AI分身时,开发者普遍会遇到两个典型问题:"读课文"现象和长对话记忆混乱。前者表现为AI机械复述检索到的内容,缺乏个性化…

2026/7/23 18:08:55阅读更多 →
鸿蒙 PC Markdown 编辑器千文件工作区压力测试

鸿蒙 PC Markdown 编辑器千文件工作区压力测试

鸿蒙 PC Markdown 编辑器千文件工作区压力测试 仓库地址:https://gitcode.com/VON-/codex_md_oh 代码基线:工作区搜索功能基线 2ca99e9,G3-10 千文件设备回归 941a1dc,当前状态 6c9d88f。 千文件测试不是制造一千条结果 工作区…

2026/7/23 19:19:11阅读更多 →
Tiva™ C系列MCU EPI模块PSRAM接口配置:iRDY信号与等待状态详解

Tiva™ C系列MCU EPI模块PSRAM接口配置:iRDY信号与等待状态详解

1. 项目概述与核心价值在嵌入式系统开发中,尤其是涉及图形显示、数据采集或通信缓冲的应用,片上SRAM的容量常常捉襟见肘。这时,扩展一片高速、低成本的外部PSRAM(伪静态随机存储器)就成了一个非常实用的选择。然而&…

2026/7/23 19:19:11阅读更多 →
AI编曲工具如何改变音乐创作流程

AI编曲工具如何改变音乐创作流程

1. 项目概述:AI编曲如何颠覆传统音乐创作流程作为一名独立音乐人,我深刻理解创作过程中最痛苦的环节——当你脑海中浮现一段美妙旋律,却苦于没有专业编曲能力将其完整呈现。传统编曲需要掌握乐理知识、熟悉多种乐器特性、精通DAW软件操作&…

2026/7/23 19:19:11阅读更多 →
大模型生产环境评测与部署实战指南

大模型生产环境评测与部署实战指南

1. 生产环境大模型应用评测体系详解1.1 为什么需要专门的评测体系在大模型技术快速发展的今天,生产环境中的应用场景越来越广泛。与学术研究或demo演示不同,生产环境对模型的稳定性、可靠性和性能有着更高的要求。我见过太多团队在实验室环境下模型表现优…

2026/7/23 19:19:11阅读更多 →
verilog HDLBits刷题[Counters]“Count1to10”---Decade counter again

verilog HDLBits刷题[Counters]“Count1to10”---Decade counter again

一、题目Make a decade counter that counts 1 through 10, inclusive. The reset input is synchronous, and should reset the counter to 1.Module Declarationmodule top_module (input clk,input reset,output [3:0] q);二、分析同步高有效复位,计数器变为1&am…

2026/7/23 19:19:11阅读更多 →
大厂HR面被问个人缺点?留学生用业务度量提升话术得体回应「蒸汽求职分享」

大厂HR面被问个人缺点?留学生用业务度量提升话术得体回应「蒸汽求职分享」

在经历了两到三轮硬核的技术厮杀或业务架构拆解后,很多留学生同学在 HR 终面时,会迎头撞上一个极其经典且暗藏杀机的试探:“你觉得你最大的缺点或者目前最突出的短板是什么?” 面对这个关于个人缺点的拷问,许多缺乏终面…

2026/7/23 19:17:10阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →