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 {
   
	@Bean
	public RouteLocator customRouteLocator(

相关推荐

  1. Vue由 - 工作原理(深入理解)

    2024-03-10 21:20:04       31 阅读
  2. 区块 | IPFS 工作原理入门

    2024-03-10 21:20:04       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 21:20:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 21:20:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 21:20:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 21:20:04       20 阅读

热门阅读

  1. SpringBoot多环境配置和logback日志记录器

    2024-03-10 21:20:04       19 阅读
  2. 关于设置html不让浏览器进行缓存的问题

    2024-03-10 21:20:04       20 阅读
  3. SQL如何添加数据?|SQL添加数据示例

    2024-03-10 21:20:04       21 阅读
  4. 使用Numpy手工模拟梯度下降算法

    2024-03-10 21:20:04       20 阅读
  5. 代码随想录算法训练营day32

    2024-03-10 21:20:04       18 阅读
  6. 软考高级:UML 4+1 视图概念和例题

    2024-03-10 21:20:04       20 阅读
  7. UML统一建模语言在软件开发中作用

    2024-03-10 21:20:04       24 阅读
  8. POST和GET传值的方法

    2024-03-10 21:20:04       19 阅读
  9. 20个Python中列表(list)最常用的方法和函数。

    2024-03-10 21:20:04       20 阅读
  10. Spring Boot 入门教程

    2024-03-10 21:20:04       17 阅读
  11. LeetCode的使用方法

    2024-03-10 21:20:04       21 阅读