springcloud gateway断言规则总结

gateway官网

https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/

1.after 路由断言工厂

官网原文:

The After route predicate factory takes one parameter, a datetime (which is a java ZonedDateTime). This predicate matches requests that happen after the specified datetime. The following example configures an after route predicate:
蹩脚翻译:
after路由断言工厂需要一个java ZonedDateTime的参数,这个规则匹配发生在该特定时间后的请求。下面after路由断言的例子

spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates:
        - After=2017-01-20T17:42:47.789-07:00[America/Denver]

2.before路由断言规则

The Before route predicate factory takes one parameter, a datetime (which is a java ZonedDateTime). This predicate matches requests that happen before the specified datetime. The following example configures a before route predicate:

例子:

spring:
  cloud:
    gateway:
      routes:
      - id: before_route
        uri: https://example.org
        predicates:
        - Before=2017-01-20T17:42:47.789-07:00[America/Denver]

3.between路由断言规则

he Between route predicate factory takes two parameters, datetime1 and datetime2 which are java ZonedDateTime objects. This predicate matches requests that happen after datetime1 and before datetime2. The datetime2 parameter must be after datetime1. The following example configures a between route predicate:

需要两个时间参数,匹配这两个时间之间的请求

例子:

spring:
  cloud:
    gateway:
      routes:
      - id: between_route
        uri: https://example.org
        predicates:
        - Between=2017-01-20T17:42:47.789-07:00[America/Denver], 2017-01-21T17:42:47.789-07:00[America/Denver]

4.cookie路由断言工厂

The Cookie route predicate factory takes two parameters, the cookie name and a regexp (which is a Java regular expression). This predicate matches cookies that have the given name and whose values match the regular expression. The following example configures a cookie route predicate factory:
需要两个参数,cookie名称和正则表达式,匹配有该cookie名称并且符合正则表达式的请求

例子:

spring:
  cloud:
    gateway:
      routes:
      - id: cookie_route
        uri: https://example.org
        predicates:
        - Cookie=chocolate, ch.p
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Cloud Gateway中,断言(Predicate)是用来匹配请求的条件,只有当请求满足指定的条件时才会进入对应的路由规则Spring Cloud Gateway内置了很多种不同的断言,可以根据不同的需求进行选择和组合。 常见的断言有: 1. Path Route Predicate:根据请求的路径匹配路由规则。 2. Host Route Predicate:根据请求的Host匹配路由规则。 3. Header Route Predicate:根据请求的Header匹配路由规则。 4. Method Route Predicate:根据请求的HTTP方法匹配路由规则。 5. Query Route Predicate:根据请求的Query参数匹配路由规则。 6. Weight Route Predicate:根据服务的权重配合负载均衡策略进行路由。 下面是一个示例,使用Path Route Predicate根据请求的路径匹配路由规则: ```java @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("path_route", r -> r.path("/get") .uri("http://httpbin.org")) .build(); } ``` 上面的代码定义了一个路由规则,当请求路径为 "/get" 时,将请求转发到 "http://httpbin.org"。 在Spring Cloud Gateway中,可以通过组合不同的断言来实现更复杂的路由规则。例如,下面的代码定义了一个路由规则,当请求路径为 "/get",请求头中包含 "User-Agent" 且值为 "Mozilla" 时,将请求转发到 "http://httpbin.org": ```java @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("path_route", r -> r.path("/get") .and().header("User-Agent", "Mozilla") .uri("http://httpbin.org")) .build(); } ``` 这里使用了 Path Route Predicate 和 Header Route Predicate 两个断言组合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值