当前位置: 首页 > news >正文

反向代理+网关部署架构

后端要做的事情:鉴权认证、限流/熔断、日志处理

反向代理+网关部署架构

缺点:需要同时维护反向代理和网关
优点:针对Api服务和网页服务的不同能够灵活处理

统一网关部署架构

缺点:不能够针对网页服务和API服务灵活处理,需要在统一网关层进行分别判断
优点:能避免跨域等问题

后端网关

后端网关(Backend Gateway)是分布式系统架构中的核心组件,主要负责 请求转发、协议转换、流量管控和安全防护,充当客户端与后端服务之间的智能中介。
后端网关(Backend Gateway)是分布式架构中的核心枢纽,主要负责 请求的智能调度、安全管控和系统治理。以下是它处理的具体任务和实际应用场景的深度解析:

一、核心处理任务

1. 流量调度与路由
  • 动态路由
    根据请求路径、Header或参数将请求分发到不同服务(如 /api/orders → 订单服务集群)。
  • 灰度发布
    通过流量染色(如 Header: version=canary)将部分用户请求导流到新版本服务。
  • 多环境路由
    将测试请求自动路由到测试环境(如 Header: env=beta)。

示例(Nginx配置):

location /api/users {proxy_pass http://user-service-v2;  # 指向用户服务v2集群
}
2. 安全防护
  • 统一鉴权
    验证JWT/OAuth2令牌,拦截未授权请求(如购物车接口必须携带有效Token)。
  • 防攻击
    封禁高频访问IP(防止CC攻击),过滤SQL注入/XSS恶意参数。
  • 数据脱敏
    对响应中的手机号、身份证等字段自动打码。

示例(Kong网关插件):

# 启用JWT插件
curl -X POST http://kong:8001/apis/{api}/plugins \-d "name=jwt"
3. 系统稳定性保障
  • 熔断降级
    当订单服务响应超时5秒,自动切换至兜底逻辑(如返回缓存数据)。
  • 限流控制
    限制秒杀接口每秒最多1000次请求(令牌桶算法)。
  • 负载均衡
    按服务器CPU使用率动态分配流量(替代传统的轮询策略)。

示例(Spring Cloud Gateway熔断配置):

filters:- name: CircuitBreakerargs:name: paymentServicefallbackUri: forward:/fallback/payment
4. 性能优化
  • 缓存加速
    缓存商品分类信息,降低数据库查询压力(TTL=10分钟)。
  • 数据聚合
    合并用户基本信息+积分详情,减少客户端请求次数(BFF模式)。
  • 协议转换
    将HTTP REST请求转换为内部gRPC调用,提升传输效率。

示例(GraphQL网关聚合):

# 一次请求获取用户订单+物流信息
query {user(id: "123") {orders {idtrackingInfo {status}}}
}
5. 可观测性
  • 日志采集
    记录请求耗时、状态码、调用链ID(关联ELK分析)。
  • 监控埋点
    统计API成功率,推送至Prometheus+Grafana仪表盘。
  • 实时告警
    当支付接口错误率>5%时触发企业微信告警。

二、实际业务场景

案例1:电商大促
  • 任务:保障核心链路(商品详情→购物车→支付)
  • 网关动作
    • 支付接口限流5000 QPS
    • 非核心接口(如评价服务)自动降级
    • 恶意爬虫请求拦截率>99%
案例2:金融系统
  • 任务:合规与风控
  • 网关动作
    • 敏感操作(转账)强制二次认证
    • 请求参数加密(SM4国密算法)
    • 操作日志审计留存6个月

三、技术实现对比

功能NginxSpring Cloud GatewayKong
路由灵活性中(需写Lua脚本)高(Java DSL配置)高(声明式配置)
协议支持HTTP/WebSocketHTTP/gRPCHTTP/gRPC/WebSocket
扩展性依赖插件开发集成Spring生态丰富插件市场
性能极高(C语言)高(Netty)高(Nginx基础)

http://www.lryc.cn/news/608964.html

相关文章:

  • 动态置信度调优实战:YOLOv11多目标追踪精度跃迁方案(附完整代码)
  • 关于corn
  • Android 之 图片加载(Fresco/Picasso/Glide)
  • 禁闭求生2 免安 中文 离线运行版
  • 【数据结构与算法】数据结构初阶:排序内容加餐(二)——文件归并排序思路详解(附代码实现)
  • 【LeetCode 热题 100】84. 柱状图中最大的矩形——(解法一)单调栈+三次遍历
  • 二叉树的锯齿形层次遍历
  • 9.苹果ios逆向-FridaHook-ios中的算法(CCCrypt)
  • CCF-GESP 等级考试 2025年6月认证C++一级真题解析
  • wordpress登陆前登陆后显示不同的顶部菜单
  • 最简单的零基础软件测试学习路线
  • Libevent(5)之使用教程(4)工具
  • k8s黑马教程笔记
  • 快速搭建一个非生产k8s环境
  • 【运维基础】Linux 硬盘分区管理
  • k8s+isulad 国产化技术栈云原生技术栈搭建4-添加worker节点
  • Hyper-V + Centos stream 9 搭建K8s集群(二)
  • k8s+isulad 国产化技术栈云原生技术栈搭建3-master节点安装
  • [硬件电路-148]:数字电路 - 什么是CMOS电平、TTL电平?还有哪些其他电平标准?发展历史?
  • Go语言实战案例:TCP服务器与客户端通信
  • 案例介绍|JSON数据格式的转换|pyecharts模块简介
  • Kafka——怎么重设消费者组位移?
  • 构建企业级Web应用:AWS全栈架构深度解析
  • AtCoder Beginner Contest 417
  • [硬件电路-147]:模拟电路 - DC/DC电压的三种架构:升压(Boost)、降压(Buck)或升降压(Buck-Boost)
  • 跨语言模型中的翻译任务:XLM-RoBERTa在翻译任务中的应用
  • 界面规范4-按钮
  • IntelliJ IDEA开发编辑器摸鱼看股票数据
  • Parcel 使用详解:零配置的前端打包工具
  • 关于车位引导及汽车乘梯解决方案的专业性、系统性、可落地性强的综合设计方案与技术实现说明,旨在为现代智慧停车楼提供高效、安全、智能的停车体验。