Spring Cloud Gateway路由断言

一 内置路由断言工厂

Predicate(断言) 用于进行条件判断,只有断言都返回真,才会真正的执行路由。

SpringCloud Gateway包括许多内置的断言工厂,所有这些断言都与HTTP请求的不同属性匹配。具体如下:

二 基于Datetime

此类型的断言根据时间做判断,主要有三个:

  • AfterRoutePredicateFactory: 接收一个日期参数,判断请求日期是否晚于指定日期

  • BeforeRoutePredicateFactory: 接收一个日期参数,判断请求日期是否早于指定日期

  • BetweenRoutePredicateFactory: 接收两个日期参数,判断请求日期是否在指定时间段内

- After=2019-12-31T23:59:59.789+08:00[Asia/Shanghai]

三 基于远程地址

RemoteAddrRoutePredicateFactory:接收一个IP地址段,判断请求主机地址是否在地址段中

- RemoteAddr=192.168.1.1/24

四 基于Cookie

CookieRoutePredicateFactory:接收两个参数,cookie 名字和一个正则表达式。 判断请求cookie是否具有给定名称且值与正则表达式匹配。

- Cookie=chocolate, ch.

五 基于Header

HeaderRoutePredicateFactory:接收两个参数,标题名称和正则表达式。 判断请求Header是否具有给定名称且值与正则表达式匹配。

- Header=X-Request-Id, \d+

六 基于Host

HostRoutePredicateFactory:接收一个参数,主机名模式。判断请求的Host是否满足匹配规则。

- Host=**.testhost.org

七 基于Method请求方法

MethodRoutePredicateFactory:接收一个参数,判断请求类型是否跟指定的类型匹配。

- Method=GET

八 基于Path请求路径

PathRoutePredicateFactory:接收一个参数,判断请求的URI部分是否满足路径规则。

- Path=/foo/**

九 基于Query请求参数

QueryRoutePredicateFactory :接收两个参数,请求param和正则表达式, 判断请求参数是否具有给定名称且值与正则表达式匹配。

- Query=baz, ba.

十 基于路由权重

WeightRoutePredicateFactory:接收一个[组名,权重],然后对于同一个组内的路由按照权重转发

routes:
- id: weight_route1
  uri: host1
  predicates:
  - Path=/product/**
  - Weight=group3, 1
- id: weight_route2
  uri: host2
  predicates:
  - Path=/product/**
  - Weight= group3, 9

 

 

你可能感兴趣的:(java,java)