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
    
  • 相关阅读:
    python_摘要_加密
    python_计算器
    python_选课系统
    飞行员配对方案问题 【网络流24题】
    方格取数 【网络流24题】【最小割】
    P2402 奶牛隐藏【二分】【最大流】
    P2172 [国家集训队]部落战争【最小路径覆盖】
    最小路径覆盖问题【网络流24题】
    P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查 [最小割] [二分图]
    P2053 [SCOI2007]修车【zkw费用流】
  • 原文地址:https://www.cnblogs.com/smalldong/p/13911653.html
Copyright © 2011-2022 走看看