《从单体架构到微服务:为什么需要 Nacos 和 Gateway?一文搞懂服务注册、配置中心和网关》
从单体架构到微服务为什么需要 Nacos 和 Gateway前言大家好我是小尤。在传统项目开发中我们经常看到一个 Spring Boot 项目直接连接数据库然后提供接口给前端调用。例如前端 | | Spring Boot | | MySQL这种架构在项目初期完全没有问题。但是随着业务越来越复杂一个项目可能包含用户模块商品模块订单模块支付模块库存模块如果全部写在一个项目里面代码会越来越庞大。于是很多企业开始采用微服务架构将一个大的系统拆分成多个独立服务。例如前端 | | API Gateway | ------------------------------------------------ | | | | 用户服务 商品服务 订单服务 支付服务但是拆成微服务之后又产生了新的问题服务之间怎么找到对方服务地址变化怎么办配置文件怎么统一管理前端请求应该访问哪个服务于是出现了NacosGateway这两个非常重要的组件。一、Nacos 是什么Nacos 是一个服务发现和配置管理平台。官方定位Nacos 主要解决服务发现、服务配置管理等问题。 ([Nacos 官网][1])简单理解Nacos 就是微服务世界里的“通讯录 配置中心”。它主要有两个作用服务注册与发现配置管理二、为什么需要服务注册中心假设没有 Nacos。现在有订单服务 需要调用 用户服务订单服务可能直接写http://192.168.1.10:8080/user刚开始没问题。但是生产环境用户服务可能部署多个user-service 192.168.1.10:8080 192.168.1.11:8080 192.168.1.12:8080那么问题来了订单服务到底调用哪个如果某台服务器挂了怎么办如果新增服务器怎么办没有注册中心的问题每个服务自己维护地址订单服务 知道用户服务地址 商品服务 知道用户服务地址 支付服务 知道用户服务地址结果每增加一个服务所有地方都需要修改。维护成本非常高。三、有 Nacos 后是什么样引入 NacosNacos | 保存所有服务信息 | --------------------------------- | | | 用户服务 商品服务 订单服务服务启动的时候主动告诉 Nacos我是 user-service 地址 192.168.1.10:8080Nacos 保存user-service 实例1: 192.168.1.10:8080 实例2: 192.168.1.11:8080当订单服务需要调用用户服务不会直接找 IP。而是订单服务 | | 询问 Nacos user-service在哪里 | | Nacos返回地址这个过程叫服务发现四、Nacos 如何保证服务可用Nacos 有健康检查机制。例如用户服务启动注册 user-service 192.168.1.10然后定期发送heartbeat 我还活着如果超过时间没有响应Nacos 会认为服务不可用 删除实例避免其他服务继续调用故障机器。五、Nacos 第二个作用配置中心除了服务发现Nacos 还有一个非常重要的功能配置管理以前每个服务都有application.yml例如用户服务mysql:url:xxxredis:host:xxx订单服务mysql:url:xxxredis:host:xxx商品服务mysql:url:xxxredis:host:xxx如果数据库地址变化。需要修改几十个服务。使用 Nacos统一保存Nacos shop-prod.yaml mysql: url: xxx redis: host: xxx所有服务启动从 Nacos 获取配置。结构Nacos 配置中心 | ----------------------------- | | | 用户服务 商品服务 订单服务六、Gateway 是什么如果说Nacos 是通讯录。那么Gateway 就是公司前台。它负责所有请求进入系统的统一入口。没有 Gateway前端 | |------ 用户服务 | |------ 商品服务 | |------ 订单服务前端需要知道用户服务地址商品服务地址订单服务地址非常麻烦。有 Gateway前端 | | Gateway | -------------------------------- 用户服务 商品服务 订单服务前端只访问api.xxx.com所有请求进入 Gateway。七、Gateway 的核心功能1. 请求路由例如用户请求/api/user/loginGateway/api/user/** | ↓ user-service订单/api/order/** | ↓ order-service2. 统一鉴权如果没有 Gateway每个服务都判断Token 权限 登录状态例如用户服务判断一次 订单服务判断一次 商品服务判断一次代码重复。有 Gateway请求 | Gateway | 检查Token | 通过 | 进入业务服务3. 限流例如接口/api/pay突然大量请求。Gateway 可以限制1秒最多1000次超过拒绝请求保护后端服务。4. 日志记录Gateway 可以统一记录请求用户 请求路径 响应时间 状态码方便排查问题。八、Nacos 和 Gateway 是什么关系很多初学者容易混淆。它们负责不同事情。Nacos解决服务在哪里例如user-service 192.168.1.10Gateway解决请求应该去哪例如/user/** 发送给 user-service组合起来前端 | ↓ Gateway | ↓ 查询 Nacos | ↓ 找到 user-service | ↓ 用户服务九、企业常见微服务架构实际项目中经常看到用户 | ↓ Gateway网关 | ↓ Nacos | ------------------------------------------------ 用户服务 商品服务 订单服务 | ↓ MySQL Redis技术组合Spring Boot Spring Cloud Spring Cloud Alibaba Nacos Gateway Feign Redis MySQL十、作为前端为什么需要了解虽然前端不会直接开发 Nacos。但是日常开发经常会遇到1. 接口为什么404可能Gateway路由错误。2. 后端服务为什么调用失败可能Nacos没有注册。3. 测试环境接口为什么突然变化可能配置中心修改。4. 为什么所有接口都是/api开头因为Gateway统一入口。总结微服务里面Nacos负责服务注册 服务发现 配置管理一句话告诉系统“服务在哪里”。Gateway负责统一入口 请求路由 权限校验 限流 日志一句话决定“请求应该去哪里”。最终关系Nacos 服务注册中心 ↑ | 前端 → Gateway → 微服务理解Nacos 管服务Gateway 管请求。掌握这两个组件基本就能看懂大部分企业 Spring Cloud 微服务项目的整体架构。

相关新闻

内网横向移动与中间人攻击攻防实战解析

内网横向移动与中间人攻击攻防实战解析

1. 内网横向移动的本质与攻击面分析 在真实的攻防对抗环境中,横向移动(Lateral Movement)是攻击者突破边界防御后,在内网中扩大战果的核心手段。不同于互联网边界的严密防护,内网往往存在大量基于信任关系的脆弱点。工…

2026/10/15 10:10:52 阅读更多 →
显卡电感啸叫原理与解决方案:从RTX 5090D噪音问题到硬件静音优化

显卡电感啸叫原理与解决方案:从RTX 5090D噪音问题到硬件静音优化

1. 背景与核心概念:什么是显卡啸叫? 在组装或使用高性能电脑,尤其是搭载了像 NVIDIA GeForce RTX 5090D 这类顶级显卡时,许多用户可能会遇到一种令人困扰的现象:当显卡在高负载下运行时(例如运行大型3D游戏…

2026/10/15 4:15:03 阅读更多 →
OpenClaw本地化部署与AI智能体开发实战

OpenClaw本地化部署与AI智能体开发实战

1. OpenClaw本地化部署实战指南 作为一款新兴的AI智能体开发框架,OpenClaw因其模块化设计和多平台适配能力在开发者社区迅速走红。最近在调试一个跨平台对话系统时,我发现OpenClaw的插件机制能完美解决大模型与业务系统的对接问题。不过初次接触这个工具…

2026/10/10 23:19:19 阅读更多 →

最新新闻

GC2145 datasheet实战:从寄存器手册到图像链路调试

GC2145 datasheet实战:从寄存器手册到图像链路调试

简介:GC2145数据手册面向嵌入式视觉、摄像头模组与图像采集方向的硬件工程师及驱动开发者,用于快速掌握这款1/5英寸UXGA CMOS图像传感器的规格与设计要点。资源包共1个PDF文件,约814KB,即Galaxy Core发布的GC2145 CSP Datasheet V…

2026/10/15 10:59:04 阅读更多 →
从宇树招股书读懂具身智能:先本体再模型、先运动再干活

从宇树招股书读懂具身智能:先本体再模型、先运动再干活

长跑具身智能这条赛道的人,应该都记得2025年底那则消息:宇树科技的科创板招股书正式获受理。我第一时间把招股书翻了一遍,最触动我的反而不是营收和利润数字,而是藏在发展脉络里的十二个字——先本体、再模型;先运动、…

2026/10/15 10:59:04 阅读更多 →
ePub排版避坑指南:从标签属性到CSS类选择器实战

ePub排版避坑指南:从标签属性到CSS类选择器实战

简介:这份文档面向电子书制作初学者与希望提升排版水平的爱好者,系统讲解ePub格式电子书的排版与样式知识,帮助解决标签使用不规范、样式设置混乱等常见问题。资源包内含1个doc文件,大小约869KB,以图文教程形式呈现&am…

2026/10/15 10:59:04 阅读更多 →
MIMO检测算法在瑞利衰落信道下的Matlab仿真与性能对比

MIMO检测算法在瑞利衰落信道下的Matlab仿真与性能对比

1. 项目背景与核心价值多输入多输出(MIMO)技术作为现代无线通信系统的核心技术之一,通过利用空间维度显著提升了信道容量和传输可靠性。在实际系统中,接收端需要准确分离同时到达的多路信号,这就涉及到MIMO检测算法的选…

2026/10/15 10:59:04 阅读更多 →
Uila全栈性能监控实战:从数据采集到根因定位的完整解析

Uila全栈性能监控实战:从数据采集到根因定位的完整解析

1. 从"黑盒"到"透视":数据中心性能监控到底在解决什么问题数据中心运维这行干久了,最怕的不是服务器宕机,而是"慢"。宕机至少还有个明确的告警,重启或者切流量就能恢复;但"慢"…

2026/10/15 10:59:04 阅读更多 →
基于Python的茶叶商城交易平台设计与实现

基于Python的茶叶商城交易平台设计与实现

选题背景与意义 随着互联网技术的迅猛发展和电子商务模式的不断成熟,传统零售行业正经历着深刻的数字化转型。在这一背景下,农产品电商化成为推动乡村振兴与农业现代化的重要路径之一。茶叶作为中国最具代表性的传统农产品之一,不仅具有深厚的…

2026/10/15 10:58:03 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/15 9:49:14 阅读更多 →