zoukankan      html  css  js  c++  java
  • 微服务网关4-不同的路由断言分类

    内置路由断言工厂

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

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

    1、基于Datetime

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

    • AfterRoutePredicateFactory: 接收一个日期参数,判断请求日期是否晚于指定日期
    • BeforeRoutePredicateFactory: 接收一个日期参数,判断请求日期是否早于指定日期
    • BetweenRoutePredicateFactory: 接收两个日期参数,判断请求日期是否在指定时间段
    - After=2019-12-31T23:59:59.789+08:00[Asia/Shanghai] #晚于这个时间才执行
    

    2、基于远程地址

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

    - RemoteAddr=192.168.1.1/24
    

    3、基于Cookie

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

    - Cookie=chocolate, ch.
    

    4、基于Header

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

    - Header=X-Request-Id, d+
    

    5、基于Host

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

    - Host=**.testhost.org
    

    6、基于Method请求方法

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

    - Method=GET
    

    7、基于Path请求路径

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

    - Path=/foo/**
    

    8、基于Query请求参数

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

    - Query=baz, ba.
    

    9、基于路由权重

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

    routes:
    - id: weight_route1 
      uri: host1 
      predicates:
      - Path=/product/**
      - Weight=group3, 1
    - id: weight_route2 
      uri: host2 
      predicates:
      - Path=/product/**
      - Weight= group3, 9
    
  • 相关阅读:
    刚好遇见你——软件工程
    int main(int argc,char* argv[]) 简单理解
    奇偶数分离
    A+B Problem
    日期计算
    正三角形的外接圆面积
    数数小木块
    谁是最好的Coder
    水仙花数
    5个数求最值
  • 原文地址:https://www.cnblogs.com/smalldong/p/13911653.html
Copyright © 2011-2022 走看看