【Spring Cloud】gateway详细介绍

SpringCloud Gateway是构建API网关的库,基于Spring Framework 5、Project Reactor和Spring Boot 2.0。它提供路由匹配、断路器集成和请求过滤等功能。路由通过谓词匹配,过滤器则在请求前或后执行定制操作,如修改头信息、限速和路径重写。个人实践展示了如何配置路由和过滤器,实现请求转发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gateway是什么?

该项目提供了一个库,用于在 Spring WebFlux 之上构建 API 网关。Spring Cloud Gateway 旨在提供一种简单而有效的方式来路由到 API,并为它们提供横切关注点,例如:安全性、监控/指标和弹性。

特点

  • 基于 Spring Framework 5、Project Reactor 和 Spring Boot 2.0 构建。
  • 能够匹配任何请求属性的路由。
  • 谓词和过滤器特定于路由。
  • 断路器集成。
  • Spring Cloud Discovery客户端集成。
  • 易于编写谓词和过滤器。
  • 请求速率限制。
  • 路径重写。

词汇表

Route:网关的基本构建块。它由 ID、目标 URI、谓词集合和过滤器集合定义。如果聚合谓词为真,则匹配路由。

谓词:这是一个Java 8 函数谓词。输入类型是Spring FrameworkServerWebExchange。这使您可以匹配来自 HTTP 请求的任何内容,例如标头或参数。

过滤器GatewayFilter:这些是使用特定工厂构建的实例。在这里,您可以在发送下游请求之前或之后修改请求和响应。

gateway是如何工作的呢?

在这里插入图片描述

  1. Gateway 接收客户端请求。
  2. 请求与 Predicate 进行匹配,获得到对应的 Route。匹配成功后,才能继续往下执行。
  3. 请求经过 Filter 过滤器链,执行前置(prev)处理逻辑。例如说,修改请求头信息等。
  4. 请求被 Proxy Filter 转发至目标 URI,并最终获得响应。一般来说,目标 URI 是被代理的微服务,如果是在 Spring Cloud 架构中。
  5. 响应经过 Filter 过滤器链,执行后置(post)处理逻辑。
  6. Gateway 返回响应给客户端。

在这里插入图片描述

路由谓词工厂

after_route

before_route

between_route

cookie_route

header_route

host_route

method_route

path_route

spring:
  cloud:
    gateway:
      routes:
      - id: path_route
        uri: https://example.org
        predicates:
        - Path=/red/{
   
   segment},/blue/{
   
   segment}

query_route

remoteaddr_route

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值