SpringCloud Gateway--网关服务基本介绍和基本原理
😀前言
本篇博文是关于SpringCloud Gateway的基本介绍,希望你能够喜欢
🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊
文章目录
- SpringCloud Gateway
- Gateway 介绍
- 看一个需求,引出网关服务
- Gateway 网络拓扑图
- Gateway 是什么
- 官网
- Gateway 核心功能
- Gateway VS Zuul
- Gateway 和Zuul 区别
- Gateway 特性
- Gateway 基本原理
- Gateway 核心组件
- 一张图
- 解读:
- Route(路由)
- Predicate(断言)
- Filter(过滤)
- How It Works 工作机制
- 示意图
- 梳理流程(how to work)
SpringCloud Gateway
Gateway 介绍
看一个需求,引出网关服务
1、有一个前后端分离项目, 分析如图

2、使用网关服务, 重构项目架构

Gateway 网络拓扑图

Gateway 是什么

- Gateway 是在Spring 生态系统之上构建的API 网关服务,基于Spring ,Spring Boot 和ProjectReactor 等技术。
- Gateway 旨在提供一种简单而有效的方式来对API 进行路由,以及提供一些强大的过滤器功能,例如∶熔断、限流、重试等
官网
官网地址: https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/
Gateway 核心功能
1. 鉴权
2. 流量控制
3. 熔断
4. 日志监控
5. 反向代理
Gateway VS Zuul
Gateway 和Zuul 区别
- SpringCloud Gateway 作为Spring Cloud 生态系统中的网关,目标是替代Zuul
- SpringCloud Gateway 是基于Spring WebFlux 框架实现的
- Spring WebFlux 框架底层则使用了高性能的Reactor 模式通信框架Netty , 提升了网关性能
Gateway 特性
Spring Cloud Gateway 基于Spring Framework(支持Spring WebFlux),Project Reactor 和Spring Boot 进行构建,具有如下特性:
- 动态路由
- 可以对路由指定Predicate(断言)和Filter(过滤器)
- 集成Hystrix的断路器功能
- 集成Spring Cloud 服务发现功能
- 请求限流功能
- 支持路径重写
Gateway 基本原理
Gateway 核心组件
一张图

解读:
- web 请求,通过一些匹配条件,定位到真正的服务节点/微服务模块,在这个转发过程的前后,进行一些精细化控制。
- predicate: 就是匹配条件。
- filter: 可以理解为是网关的过滤机制。有了predicate 和filter,再加上目标URL.就可以实现一个具体的路由。
Route(路由)
说明: 路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true 则匹配该路由.
Predicate(断言)
1、说明: 对HTTP 请求中的所有内容(例如请求头或请求参数)进行匹配,如果请求与断言相匹配则进行路由。
2、简单举例, 比如配置路径, - Path=/member/get/** #断言,路径相匹配的进行路由转发, 如果Http 请求的路径不匹配, 则不进行路由转发.
Filter(过滤)
1、一句话: 使用过滤器,可以在请求被路由前或者之后对请求进行处理。
2、你可以理解成, 在对Http 请求断言匹配成功后, 可以通过网关的过滤机制, 对Http 请求处理。
3、简单举例:
filters:- AddRequestParameter=color, blue #过滤器在匹配的请求头加上一对请求头,名称为color 值为blue, 比如原来的http 请求是http://localhost:10000/member/get/1 ==过滤器处理=>http://localhost:10000/member/get/1?color=blue
How It Works 工作机制
示意图


梳理流程(how to work)
- 客户端向Spring Cloud Gateway 发出请求。然后在Gateway Handler Mapping 中找到与请求相匹配的路由,将其发送到Gateway Web Handler。
- Handler 再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。
- 过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前(“pre”)或之后(“post”)执行业务逻辑。
- Filter 在"pre"类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等,
- 在"post"类型的过滤器中可以做响应内容、响应头的修改,日志的输出,流量监控等有着非常重要的作用。
一句话说:路由转发+执行过滤器链
文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞
相关文章:
SpringCloud Gateway--网关服务基本介绍和基本原理
😀前言 本篇博文是关于SpringCloud Gateway的基本介绍,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力…...
使用Vue-cli构建spa项目及结构解析
一,Vue-cli是什么? 是一个官方发布的Vue脚手架工具,用于快速搭建Vue项目结构,提供了现代前端开发所需要的一些基础功能,例如:Webpack打包、ESLint语法检查、单元测试、自动化部署等等。同时,Vu…...
自定义Unity组件——AudioManager(音频管理器)
需求描述 在游戏开发中,音频资源是不可或缺的,通常情况下音频资源随机分布,各个音频的操作和管理都是各自负责,同时对于音频的很多操作逻辑都是大同小异的,这就造成了许多冗余代码的堆叠,除此之外在获取各类…...
leetcode 558 设计内存文件系统
题目 Design an in-memory file system to simulate the following functions: ls: Given a path in string format. If it is a file path, return a list that only contains this files name. If it is a directory path, return the list of file and directory namesin th…...
Haproxy负载均衡群集
HAproxy搭建Web群集一、Web集群调度器1、常见的Web集群调度器2、常用集群调度器的优缺点(LVS ,Nginx,Haproxy)2.1 Nginx2.2 LVS2.3 Haproxy 3、LVS、Nginx、HAproxy的区别 二、Haproxy1、简介2、Haproxy应用分析3、HAProxy的主要特性4、Haproxy调度算法(…...
什么是面包屑导航?
面包屑导航(Breadcrumb Navigation)这个概念来自童话故事“汉赛尔和格莱特”,当汉赛尔和格莱特穿过森林时,不小心迷路了,但是他们发现沿途走过的地方都撒下了面包屑,让这些面包屑来帮助他们找到回家的路。 在网站应用中࿰…...
VS2019创建GIt仓库时剔除文件或目录
假设本地有解决方案“SomeSolution” 1、首先”团队资源管理器“-“创建Git存储库”,选择“仅限本地”、“创建” VS会在解决方案目录下自动生成.gitattributes、.gitignore 2、编辑gitignore,直接拖到VS里或者用记事本打开。添加要剔除的文件或文件夹…...
计算机等级考试—信息安全三级真题六
目录 一、单选题 二、填空题 三、综合题 一、单选题...
vue循环滚动字幕
在Vue.js中创建一个循环滚动字幕的效果通常需要使用一些CSS和JavaScript来实现。以下是一个简单的示例,展示如何使用Vue.js创建一个循环滚动字幕的效果: 首先,在HTML中创建一个Vue实例,并添加一个包含滚动字幕的容器元素ÿ…...
扩展pytest接口自动化框架-MS数据解析功能
【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】 开篇 MeterSphere的数据源通过html页面上传后,需要将请求方式进行拆分。 get接口的参数,常以params的方式进行传…...
docker容器安装MongoDB数据库
一:MongoDB数据库 1.1 简介 MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最 像关系型数据库(MySQL)的非关系型数据库。 它支持的数据结构…...
Python机器学习实战-特征重要性分析方法(3):迭代删除法:Leave-one-out(附源码和实现效果)
实现功能 迭代地每次删除一个特征并评估准确性 实现代码 from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score impo…...
Go的error接口
从本书的开始,我们就已经创建和使用过神秘的预定义error类型,而且没有解释它究竟是什么。实际上它就是interface类型,这个类型有一个返回错误信息的单一方法: type error interface { Error() string } 创建一个error最简单的方…...
RabbitMQ 集群 - 普通集群、镜像集群、仲裁队列
目录 一、RabbitMQ 集群 1.1、前言 1.2、普通集群 1.3、镜像集群 1.4、仲裁队列 一、RabbitMQ 集群 1.1、前言 前面我们已经解决了消息可靠性问题,以及延迟消息问题 和 消息堆积问题. 这最后一章,我们就来解决以下 mq 的可用性 和 并发能力. 1.2、…...
高项新版教程(第四版)解读+学习指导
第四版主要内容 技术部分 信息化教程、软件工程、网络技术是原来的,学习原来的录播。 新基建、工业互联网、车联网、农业现代化、数字化转型、元宇宙等是新增,以直播讲。 管理部分 变化不是太大 。 整合管理、人力变为资源管理、风险管理新增内容。 …...
【Debian】Debian10.0.0安装选项问答
debian的LXQT是什么? LXQT是一套轻量级的桌面环境,主要基于Qt框架开发。 LXQT在debian中的具体特点包括: - 使用Openbox作为窗口管理器,提供平铺式窗口布局。 - 文件管理器为PCManFM-Qt。 - 设置中心集成 debconf 配置界面。 - 支持GTK和Qt应用程序。 - 资源消耗较低…...
【基于React-Native做位置信息获取,并展示出来】
基于React-Native做位置信息获取 在这个里面最重要的是两个部分,一个是位置定位的权限获取,一个是实时位置的监听,在安卓项目中,在 android/app/src/main/AndroidManifest.xml该文件下,在< manifest > 标签内写…...
ansible安装、点对点Ad-Hoc、模块、剧本Playbook
DevOps: 官网:https://docs.ansible.com 自动化运维工具对比 C/S 架构:客户端/服务端 Puppet:基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱 SaltStack:基于 Python 开发,采用 C/S 架构,YAML使得配置脚本更简单.需要配置客户端及服务器…...
Ceph入门到精通-ceph pool 删除导致 misplaced 的原因
misplaced 的原因 Ceph中的misplaced对象是指将对象(或对象的副本)存储在错误的位置上,这可能会导致性能下降或数据不一致的问题。在删除Ceph池时,可能会导致misplaced的原因有以下几个: 删除过程中的操作失误&#x…...
计算机组成原理课程设计
操作控制和顺序控制 操作控制就是由各种微命令来构成的顺序控制就是由P测试和后续微地址构成的 这就构成了整个微指令的三个部分 访存指令就是实现对主存中的数据进行访问或存储 一、 操作控制字段是由各种微命令来构成的,这些微命令怎么来设计? 一个萝卜…...
FreeCAD新手避坑指南:从零开始画一个能3D打印的收纳盒(附Assembly4插件安装)
FreeCAD新手避坑指南:从零开始画一个能3D打印的收纳盒 第一次打开FreeCAD时,满屏的英文界面和专业术语可能会让你感到无从下手。作为一款开源免费的CAD软件,FreeCAD虽然功能强大,但学习曲线确实比商业软件更陡峭。本文将带你避开那…...
3步高效转换:AEUX智能插件实现Figma到AE的无缝动画设计
3步高效转换:AEUX智能插件实现Figma到AE的无缝动画设计 【免费下载链接】AEUX Editable After Effects layers from Sketch artboards 项目地址: https://gitcode.com/gh_mirrors/ae/AEUX AEUX插件是一款革命性的设计转换工具,能够将Figma设计稿智…...
思源宋体完全指南:免费开源中文字体的终极解决方案
思源宋体完全指南:免费开源中文字体的终极解决方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为商业项目中的中文字体授权费用而烦恼吗?或者在不同平台…...
高斯过程回归预测:从“黑箱”到“白盒”,手把手教你用sklearn调参与可视化
高斯过程回归实战:从数学原理到工业级调优指南 金融时序预测中,当业务方质疑模型给出的波动区间时,工程师该如何解释那条逐渐收窄的置信带?设备剩余寿命预测场景下,为什么修改length_scale参数会显著改变退化曲线的拐点…...
2026届必备的五大AI写作网站实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 现如今人工智能内容生成技术被广泛运用,好多创作者依靠它迅速生成文章标题。然而…...
2026 论文双检突围:9 款查重降重降 AIGC 工具硬核横评,Paperxie 领跑全场景通关
paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/weight?type1https://www.paperxie.cn/weight?type1 毕业季论文查重飘红、AIGC 率爆表,已成为无数本科生与研究生的 “双重噩梦”。2026 年知网、维普全面升级…...
大麦网Python抢票脚本终极指南:告别手速焦虑,轻松获取心仪门票
大麦网Python抢票脚本终极指南:告别手速焦虑,轻松获取心仪门票 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为心仪演唱会门票秒光而烦恼吗?还在为黄牛高…...
如何一键清理Windows冗余驱动:Driver Store Explorer完全指南
如何一键清理Windows冗余驱动:Driver Store Explorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现C盘空间不知不觉就满了?Windows系统在C:…...
Source Han Serif CN:免费开源中文字体跨平台完整解决方案终极指南
Source Han Serif CN:免费开源中文字体跨平台完整解决方案终极指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文字体授权费用高、跨平台兼容性差而烦恼吗&…...
如何用Python自动化脚本轻松抢到大麦网演唱会门票:终极指南
如何用Python自动化脚本轻松抢到大麦网演唱会门票:终极指南 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为抢不到心仪演唱会门票而烦恼吗?当周杰伦、五月天等热门演…...
