分布式架构-网关(Gateway)

发布时间:2026/9/3 9:50:52

分布式架构-网关(Gateway)
如果是Java Web 前后端分离 分布式架构网关Gateway是整个系统最重要的组件之一。下面按照企业级项目来介绍而不是物联网场景。一、整体架构用户 │ 浏览器(Vue/React) │ HTTPS │ ┌─────────────┐ │ Nginx/CDN │ └─────────────┘ │ ▼ ┌───────────────────┐ │ API Gateway 网关 │ │ Spring Cloud Gateway │ 或 APISIX/Kong └───────────────────┘ │ │ │ │ │ │ ▼ ▼ ▼ 用户服务 商品服务 订单服务 User Product Order │ │ │ └───────┼────────┘ │ MySQL/Redis │ Kafka/RabbitMQ二、为什么需要网关如果没有网关Vue /user/login http://1.1.1.1:8081 /order/list http://1.1.1.2:8082 /product/list http://1.1.1.3:8083问题前端知道所有服务地址服务增加需要修改前端安全性差权限不好控制日志分散所以增加 Gateway。增加之后Vue /api/user/login /api/order/list /api/product/list │ ▼ Spring Cloud Gateway │ ├──User Service ├──Order Service └──Product Service前端永远只访问https://api.xxx.com三、Gateway职责1、统一入口所有请求浏览器 ↓ Gateway ↓ 微服务任何请求都必须经过Gateway。2、路由转发例如/user/**转发user-service例如GET /api/user/listGateway↓http://user-service:8081/user/list3、身份认证例如登录POST /login返回JWT以后Authorization: Bearer xxxxxGateway先校验JWT是否合法合法↓继续非法↓401不用每个服务都校验。4、权限控制例如管理员ROLE_ADMIN普通用户ROLE_USERGateway直接拦截ROLE_USER ↓ 不能访问 /admin/**5、限流例如1000 次/秒超过429 Too Many Requests保护后端。一般结合 Redis。6、黑名单例如IP 192.168.xxx.xxxGateway拒绝7、日志统一记录访问时间 IP URL 耗时 状态码 用户方便ELK分析。8、灰度发布例如10% ↓ 新版本 90% ↓ 旧版本Gateway控制。9、负载均衡例如User Service 8081 8082 8083Gateway轮询 ↓ 8081 ↓ 8082 ↓ 8083不用前端关心。10、统一异常返回{code:401,msg:token expired}所有服务统一。四、Gateway与Nginx区别NginxGateway七层代理API网关静态资源微服务入口HTTPSJWT认证反向代理权限控制负载均衡限流gzip熔断SSL动态路由rewrite服务发现企业通常两者配合使用浏览器 ↓ Nginx ↓ Gateway ↓ 微服务五、Gateway与注册中心例如Gateway ↓ NacosGateway不知道IP。只知道user-serviceGatewayNacos ↓ 获取 10.1.1.10 10.1.1.11 10.1.1.12动态路由。六、Gateway过滤器请求POST /order/create流程请求 ↓ GlobalFilter ↓ JWT ↓ 权限 ↓ 日志 ↓ 路由 ↓ Order Service ↓ 返回 ↓ GlobalFilter ↓ 响应日志 ↓ 浏览器过滤器就是AOP思想。七、典型请求流程浏览器 ↓ Nginx ↓ Gateway ↓ JWT校验 ↓ Redis查询用户 ↓ 限流 ↓ 日志 ↓ Nacos ↓ User Service ↓ MySQL ↓ 返回 ↓ Gateway ↓ 浏览器八、完整分布式架构Internet │ HTTPS │ Nginx集群 │ ┌──────────┴──────────┐ │ │ Gateway1 Gateway2 │ │ └──────────┬──────────┘ │ Nacos │ ┌──────────────┼──────────────┐ │ │ │ User Service Order Service Product Service │ │ │ ├────Redis─────┤ │ │ │ │ └────Kafka─────┴──────────────┘ │ MySQLGateway可以部署多个实例由 Nginx 或云负载均衡分发流量。九、企业级网关设计一个成熟的 Java 微服务网关通常具备以下能力功能是否建议API 路由✅ 必须JWT/OAuth2 鉴权✅ 必须服务发现Nacos/Eureka✅ 必须负载均衡✅ 必须全局异常处理✅ 必须请求/响应日志✅ 必须CORS 跨域处理✅ 必须限流Redis✅ 必须熔断、降级、重试✅ 建议灰度发布、蓝绿发布✅ 建议链路追踪TraceId✅ 建议接口版本管理✅ 建议API 文档聚合✅ 建议黑白名单、IP 访问控制✅ 建议配置中心统一管理✅ 建议十、推荐技术栈Java 后端当前主要做Java Spring Boot开发比较主流的一套企业级分布式架构是层级推荐技术前端Vue 3 TypeScript ViteWeb 服务器NginxAPI 网关Spring Cloud Gateway服务注册/配置中心Nacos微服务框架Spring Boot Spring Cloud服务调用OpenFeign数据库MySQL缓存Redis消息队列Kafka高吞吐或 RabbitMQ业务消息搜索Elasticsearch按需分布式事务Seata按需链路追踪SkyWalking 或 OpenTelemetry日志ELK / EFK容器化Docker Kubernetes生产环境智慧园区、停车场、门禁、设备管理等 Java 项目这套架构也是业内比较常见的方案。即使项目不涉及物联网也适用于 OA、ERP、商城、政务等前后端分离的分布式系统。

相关新闻

LV3296与PIC18LF46K40嵌入式信号采集系统设计指南

LV3296与PIC18LF46K40嵌入式信号采集系统设计指南

2026/8/29 16:28:58

1. LV3296与PIC18LF46K40的硬件协同架构解析 在嵌入式系统开发领域,LV3296信号调理芯片与PIC18LF46K40微控制器的组合堪称经典搭档。这套方案特别适合需要高精度信号采集和实时处理的场景,比如工业传感器网络、环境监测设备以及便携式医疗仪器。 LV3296…

Einsum张量运算与TeAAL优化框架解析

Einsum张量运算与TeAAL优化框架解析

2026/8/29 8:30:15

1. Einsum中的额外秩机制解析在张量运算领域,Einsum(爱因斯坦求和约定)作为一种强大的表示法,其核心价值在于通过引入额外秩(extra ranks)扩展了传统线性代数的表达能力。这种机制特别适用于硬件描述语言&a…

STM32H743ZI与M95M04 EEPROM嵌入式存储方案详解

STM32H743ZI与M95M04 EEPROM嵌入式存储方案详解

2026/8/27 9:35:45

1. 项目背景与硬件选型解析在嵌入式系统开发中,非易失性存储方案的选择直接影响产品的可靠性和用户体验。STM32H743ZI作为STMicroelectronics的高性能MCU系列代表,搭配M95M04 EEPROM芯片,构成了一个兼顾性能与数据安全性的存储解决方案。STM3…

基于SpringBoot的家庭财务管理系统:从设计到部署的完整实战

基于SpringBoot的家庭财务管理系统:从设计到部署的完整实战

2026/9/3 9:46:48

简介:这是一份面向计算机专业本科生的毕业设计级家庭财务管理系统完整交付包,基于SpringBoot框架构建,解决个人或家庭日常收支记录、统计与可视化管理需求,适合作为课程设计、毕设选题及Java全栈开发能力训练项目。压缩包共807个文…

Python实现Markdown/HTML一键粘贴到Word/Excel:PasteMD工具开发全解析

Python实现Markdown/HTML一键粘贴到Word/Excel:PasteMD工具开发全解析

2026/9/3 9:46:48

简介:PasteMD 是一款面向程序员、技术文档撰写者及办公效率追求者的 Python 桌面工具,专为解决 Markdown、网页富文本及 AI 对话内容在 Word/WPS/Excel 中排版失真、粘贴繁琐的痛点而设计。它通过常驻系统托盘一键触发机制,自动识别剪贴板内容…

智能体工程化:从OpenClaw协作到ClickHouse运行数据闭环

智能体工程化:从OpenClaw协作到ClickHouse运行数据闭环

2026/9/3 9:46:48

如果把九月初关于 AI 的几个热点放在一起看,会发现一个相当清晰的信号。OpenClaw 2.0 开始谈协作,AI 应用圈开始认真讨论护城河,ClickHouse 这类数据库也开始在智能体基础设施里被反复提起。表面上看,这三件事互不相干&#xff1a…

基于AdaIN的图像风格迁移:从原理到PyTorch实战

基于AdaIN的图像风格迁移:从原理到PyTorch实战

2026/9/3 9:46:48

简介:本资源是一套基于AdaIN(Adaptive Instance Normalization)实现图像风格迁移的完整机器学习实践项目,面向人工智能与计算机视觉方向的学习者、研究者及深度学习初学者,旨在解决内容图像与风格图像融合生成高质量艺…

深度学习红外与可见光图像融合:PyTorch训练与MATLAB部署实战

深度学习红外与可见光图像融合:PyTorch训练与MATLAB部署实战

2026/9/3 9:46:47

简介:本资源是一个基于MATLAB实现的红外与可见光图像融合深度学习项目,面向人工智能、计算机视觉方向的初学者与进阶研究者,解决多模态图像信息互补融合这一典型任务。压缩包共62个文件,含46张PNG/JPG格式的配对红外(I…

AgentScope 2.0:快速搭建权限可控、沙箱隔离并可扩展多智能体的智能体框架实战指南

AgentScope 2.0:快速搭建权限可控、沙箱隔离并可扩展多智能体的智能体框架实战指南

2026/9/3 9:36:47

AgentScope 2.0:快速搭建权限可控、沙箱隔离并可扩展多智能体的智能体框架实战指南 【免费下载链接】agentscope Build and run agents you can see, understand and trust. 项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope AgentScope 2.0 是…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/2 10:08:07

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/2 12:11:52

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/9/1 23:49:08

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

【原创】基于微信小程序+AI大模型+uni-app的宠物用品商城小程序(设计与实现)

【原创】基于微信小程序+AI大模型+uni-app的宠物用品商城小程序(设计与实现)

2026/9/3 0:06:18

摘要:随着电子商务与本地生活服务的普及,线上交易与店铺运营管理已成为常规业态。传统分散式进销存与人工对账方式存在流程割裂、库存难同步、促销规则难落地、经营数据难沉淀等弊端,难以支撑一体化的数字化运营。同类课题亦多见多商户在线商…

【原创】基于AI大模型+SpringBoot+Vue的宠物用品商城(设计与实现)

【原创】基于AI大模型+SpringBoot+Vue的宠物用品商城(设计与实现)

2026/9/3 0:06:18

摘要:随着电子商务与本地生活服务的普及,线上交易与店铺运营管理已成为常规业态。传统分散式进销存与人工对账方式存在流程割裂、库存难同步、促销规则难落地、经营数据难沉淀等弊端,难以支撑一体化的数字化运营。同类课题亦多见多商户在线商…

【原创】基于微信小程序+AI大模型+uni-app的节日礼品定制商城小程序(设计与实现)

【原创】基于微信小程序+AI大模型+uni-app的节日礼品定制商城小程序(设计与实现)

2026/9/3 0:06:18

摘要:随着电子商务与本地生活服务的普及,线上交易与店铺运营管理已成为常规业态。传统分散式进销存与人工对账方式存在流程割裂、库存难同步、促销规则难落地、经营数据难沉淀等弊端,难以支撑一体化的数字化运营。同类课题亦多见多商户在线商…

远程协作的工作台整理

远程协作的工作台整理

2026/9/3 6:56:24

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/3 6:39:45

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/3 5:20:28

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…