Spring Cloud之Gateway(二):网关过滤器

版本:2.0.2.RELEASE

链接:http://spring.io/projects/spring-cloud-gateway#overview

 

本章主要目录如下:

Spring Cloud Gateway网关过滤器工厂是什么?

 

本章主要内容如下:

Spring Cloud Gateway网关过滤器工厂是什么?

路由过滤器允许以某种方式修改传入的 HTTP 请求或输出的 HTTP 响应。路由过滤器作用于特定路由。Spring Cloud Gateway 包含许多内置的 GatewayFilter 工厂。

 注意:有关如何使用下面的任何过滤器的更详细的示例,请看单元测试。

 

  • AddRequestHeader 网关过滤器工厂

添加请求头网关过滤器工厂可以在请求头中添加一对键值对参数。

application.yml

spring:

  cloud:

    gateway:

      routes:

      - id: add_request_header_route

        uri: http://example.org

        filters:

        - AddRequestHeader=X-Request-Foo, Bar

这将为所有匹配请求的下游请求头部添加 X-Request-Foo:Bar。

 

  • AddRequestParameter 网关过滤器工厂

添加请求参数网关过滤器工厂可以在请求中添加一对请求参数的键值对。

application.yml

spring:

  cloud:

    gateway:

      routes:

      - id: add_request_parameter_route

        uri: http://example.org

        filters:

        - AddRequestParameter=foo, bar

这会将 foo=bar 添加到所有匹配请求的下游请求的查询字符串中。

 

  • AddResponseHeader 网关过滤器工厂

添加响应头网关过滤器工厂可以在响应头中添加键值对。

application.yml

spring:

  cloud:

    gateway:

      routes:

      - id: add_request_header_route

        uri: http://example.org

        filters:

        - AddResponseHeader=X-Response-Foo, Bar

这会将 X-Response-Foo:Bar 添加到所有匹配请求的下游响应头部中。

 

  • Hystrix 网关过滤器工厂

Hystrix 是 Netflix 的一个库,它实现了断路器模式。Hystrix 网关过滤器允许您将断路器引入到网关路由,保护您的服务免受级联故障的影响,并允许您在下游故障时提供回退响应。

要在项目中启用Hystrix 网关过滤器,请从Spring Cloud Netflix中添加spring-cloud-starter-netflix-hystrix依赖项。

Hystrix 网关过滤器需要一个名称参数,该参数是HystrixCommand 的名称。

application.yml

spring:

  cloud:

    gateway:

      routes:

      - id: hystrix_route

        uri: http://example.org

        filters:

        - Hystrix=myCommandName

这将使用命令名称 myCommandName 将剩余的过滤器包装在 HystrixCommand 中。

Hystrix过滤器还可以接受可选的fallbackUri参数。 目前,仅支持forward:schemed URIs。如果调用了回退,请求将被转发到与 URI 匹配的控制器。

 

application.yml

spring:

  cloud:

    gateway:

      routes:

      - id: hystrix_route

        uri: lb://backing-service:8088

        predicates:

        - Path=/consumingserviceendpoint

        filters:

        - name: Hystrix

          args:

            name: fallbackcmd

            fallbackUri: forward:/incaseoffailureusethis

        - RewritePath=/consumingserviceendpoint, /backingserviceendpoint

当调用 Hystrix 回退时,将转发到/inca

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StarskyBoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值