SpringCloudGateway工作原理与链路图

SpringCloudGateway基本介绍

Spring Cloud Gateway 构建于Spring Boot 2.x、 Spring WebFlux和Project Reactor之上。因此,在使用 Spring Cloud Gateway 时,您可能不会应用许多熟悉的同步库(例如 Spring Data 和 Spring Security)和模式。
Spring Cloud Gateway 需要 Spring Boot 和 Spring Webflux 提供的 Netty 运行时。它不能在传统的 Servlet 容器中工作,也不能作为 WAR 构建。
该项目提供了一个用于在 Spring WebFlux 或 Spring WebMVC 之上构建 API 网关的库。Spring Cloud Gateway 旨在提供一种简单而有效的方法来路由到 API 并为其提供横切关注点,例如:安全性、监控/指标和弹性。

SpringCloudGateway工作原理

Spring Cloud网关的特点:

  1. 基于 Spring 框架和 Spring Boot 构建
  2. 能够匹配任何请求属性上的路由。
  3. 谓词和过滤器特定于路由。
  4. 断路器集成。
  5. Spring Cloud Discovery客户端集成
  6. 易于编写谓词和过滤器
  7. 请求速率限制
  8. 路径重写

Spring Cloud网关请求链路图
在这里插入图片描述

Route:一个 Route 由路由 ID,转发 URI,多个 Predicates 以及多个 Filters 构成。Gateway 上可以配置多个 Routes。处理请求时会按优先级排序,找到第一个满足所有 Predicates 的 Route;
Predicate:表示路由的匹配条件,可以用来匹配请求的各种属性,如请求路径、方法、header 等。一个 Route 可以包含多个子 Predicates,多个子 Predicates 最终会合并成一个;
Filter:过滤器包括了处理请求和响应的逻辑,可以分为 pre 和 post 两个阶段。多个 Filter 在 pre 阶段会按优先级高到低顺序执行,post 阶段则是反向执行。Gateway 包括两类 Filter。
全局 Filter:每种全局 Filter 全局只会有一个实例,会对所有的 Route 都生效。
路由 Filter:路由 Filter 是针对 Route 进行配置的,不同的 Route 可以使用不同的参数,因此会创建不同的实例。

调试Demo局部code
@SpringBootApplication
public class DemogatewayApplication {@Beanpublic RouteLocator customRouteLocator(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/723296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高企复审需要的步骤

高企复审是指高新技术企业认定有效期满后,企业再次申请重新认定的过程。根据《高新技术企业认定管理办法》规定,高新技术企业认定有效期为三年。到期后,企业需在规定时间内进行复审,以延续其高新技术企业的资格。高企复审流程大致…

【Golang星辰图】构建健壮应用的秘籍:探索Go语言中最强大的测试工具库

精进单元测试:探秘Go语言中流行的测试框架和工具 前言 提高软件质量和稳定性是每个开发人员的目标之一。而单元测试是保证代码质量的重要手段之一,可以帮助我们检查代码是否按预期工作,并提早发现潜在的bug。Go语言提供了丰富的测试框架和工…

Polar 到底给不给flag呢

Polar 到底给不给flag呢 开局直接给了源码 $flag flag{f73da0c8e7c774d488a6df0fec2890d9};是假的 变量覆盖&#xff0c;没啥好说的。举两个例子吧。 <?php $a "hello"; echo "$a"; //输出hello $$a"world"; echo "$…

安装mysql this application requires visual studio 2019 x64报错

提示 this application requires visual studio 2019 x64 缺少依赖 安装依赖 选择对应版本 安装 依赖安装地址 成功进入安装界面

Java 中哪些库可以解决线宽问题?

在Java中&#xff0c;线程安全是一个重要的问题&#xff0c;特别是在多线程编程中。线程安全性是指当多个线程访问共享资源时&#xff0c;不会出现不确定的结果或数据损坏的情况。Java提供了多种机制来解决线程安全性问题&#xff0c;其中包括使用线程安全的类库、同步机制、并…

c++|模板初阶

c|模板 模板的引入模板的作用函数模板函数模板的格式swap函数原理函数模板的实例化1.隐式实例化2.显示实例化 函数模板的匹配规则 类模板类模板的实例化谢谢观看 模板的引入 我们在写交换两个整型的swap函数的时候&#xff0c;突然需求变成交换两个双浮点型&#xff0c;我们这…

【C语言】glibc

一、获取源码 apt install glibc-source 在Debian系统中&#xff0c;通过apt install glibc-source命令安装的glibc源码通常会被放置在/usr/src/glibc目录下。安装完成后&#xff0c;可能需要解压缩该源码包。以下是解压缩源码包的步骤&#xff1a; 1. 打开终端。 2. 切换到源…

设计MySQL数据表的几个注意点

最近合作搞项目&#xff0c;发现了很多问题。特别的&#xff0c;数据库层面上的问题更为致命。记录一下&#xff0c;希望后面看到博客的同学们注意。 注意&#xff1a;以下观点只用于一般情况下的单体、微服务&#xff0c;不保证适用所有场景。 一、ID问题 ID名称问题 如下图…

蓝牙系列二:BLE协议各层的形象化理解

对于蓝牙的协议栈模型已经不再陌生&#xff0c;但是看过相关的文档还是有些没法理解协议栈每层的区别以及每层的功能作用。本文还是继续学习韦东山讲解的蓝牙&#xff0c;对于初学者还是有很好的帮助作用&#xff0c;下面是韦东山老师形象化协议栈的框图&#xff1a; 下面还是把…

交叉编译介绍及实战

前言介绍 交叉编译是一种操作系统或者硬件架构上生成在另一种操作系统或者硬件架构上运行的代码的过程。通常情况下&#xff0c;我们会使用cmake来配置和管理跨平台的项目。 交叉编译有三个核心元素&#xff1a; Host&#xff1a;你将在其上运行编译器的机器。Target&#x…

[计算机效率] 软件优化及垃圾清理

1.7 软件优化及垃圾清理 1.7.1 Advanced SystemCare(优化清理) Advanced SystemCare是一款功能强大的系统性能优化软件&#xff0c;可以全方位诊断系统&#xff0c;找到性能瓶颈并进行有针对性的优化&#xff0c;提升系统运行速度和网络速度&#xff0c;还可以清理加速和保护…

ZWT_各向同性线弹性材料本构模型umat的应用

线弹性材料本构模型 对于多数材料而言&#xff0c;在微小变形的假设下&#xff0c;会满足线弹性理论&#xff0c;数学可以表示为&#xff1a; σ i j C i j k l ε k l E 1 ν ( ε i j ν 1 − 2 ν ε k k δ i j ) \begin{align*} \sigma_{ij}&C_{ijkl}\varepsilon…

金融基础——拨备前利润和拨备后利润介绍

一、简介 拨备前利润&#xff08;PreProvision Operating Profit&#xff0c;也就是PPOP&#xff09;和拨备后利润的主要区别在于是否扣除减值准备金、是否遵循保守性原则以及显示的利润数值不同。 拨备前利润。指在计算利润时没有扣除减值准备金的利润&#xff0c;它等于税前…

QT----QTcreater连接Mysql数据库

目录 1、下载驱动&#xff0c;放入文件夹2、编写代码&#xff0c;实现本地访问3、实现网络数据库3.1 更改权限3.2 修改代码 之前写了一个图书管理系统用的是sqlite3&#xff0c;现在想用mysql&#xff0c;部署到网上&#xff0c;实现远程访问。 1、下载驱动&#xff0c;放入文…

[清爽快捷] Ubuntu上多个版本的cuda切换

做到真正的一行代码搞定&#xff0c;只需要修改对应软链接&#xff0c;就可以轻松实现快捷切换cuda 查看已安装的cuda版本有哪些 一般如果我们都是使用默认位置安装cuda的话&#xff0c;那么其安装路径都是/usr/local。如果要查看该目录下已经安装有哪些版本的cuda&#xff0c…

录制屏幕技巧大揭秘,看看哪种适合你?

在当今信息化的时代&#xff0c;录制屏幕已成为学习、工作和娱乐中不可或缺的一部分。无论是制作教学视频、记录游戏过程&#xff0c;还是制作演示文稿&#xff0c;录制屏幕都为我们提供了极大的便利。本文将详细介绍三种录制屏幕方法&#xff0c;帮助读者轻松掌握录制屏幕的技…

适用于 Windows 的7大数据恢复软件解决方案

数据丢失是数字世界中令人不快的一部分&#xff0c;它会在某一时刻影响许多计算机用户。很容易意外删除一些重要文件&#xff0c;这可能会在您努力恢复它们时带来不必要的压力。幸运的是&#xff0c;数据恢复软件可以帮助恢复已删除的文件&#xff0c;即使您没有备份它们。以下…

2.13计算机工作过程

2.三个级别的语言 1)机器语言。又称二进制代码语言&#xff0c;需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言。 2)汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码&#xff0c;更容易为人们记忆和理解。使用汇编语言编辑的…

如何向各大媒体网站投稿 海外媒体发稿平台有哪些

在数字化时代&#xff0c;各大媒体网站是企业推广和个人展示的重要平台。通过在媒体网站上发布文章&#xff0c;可以有效地扩大影响力和提升知名度。但是&#xff0c;如何投稿到各大媒体网站呢&#xff1f;以下是一些常用的方法和步骤。 1. 研究目标媒体 在投稿之前&#xff0…

C# 水排序 微信小游戏

来只 水排序谜题启发式搜索方法_水排序解法小程序-CSDN博客 大神的C语言转换成C# 语言&#xff0c;更多的请看原作者&#xff0c;这里直接贴C#代码 using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace ConsoleApp2 {class Pro…