• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

2、spring cloud gateway主要的配置Predicates

武飞扬头像
追马的时间种草
帮助1

Predicates 写法

有两种方式配置谓词列表:简写和完整写法。

# 简写
spring:
  cloud:
    gateway:
      routes:
      - id: after_route # 唯一标识
        uri: https://example.org # 代理服务URI,predicates通过后会被路由到这里
        predicates: # 一组谓词
        - Cookie=mycookie,mycookievalue #见完整写法
        
# 完整写法
spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates:
        # 简写就是把name和args组合起来了,并且把key-value以逗号(,)的形式分割
        - name: Cookie # 表明该谓词是判断Cookie
          args:
            name: mycookie # Cookie中是否包含name=mycookie的键
            regexp: mycookievalue # name=mycookie的键值是不是=mycookievalue
学新通

Predicates 的name有多少

After 在指定时间之后的请求都被路由,可用来解决消费高峰期扩容消费服务
spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates:
        - After=2016-01-20T17:42:47.789-07:00[Asia/Shanghai]
Before 在指定时间之前的请求都被路由,可用来解决消费高峰期扩容消费服务
spring:
  cloud:
    gateway:
      routes:
      - id: before_route
        uri: https://example.org
        predicates:
        - Before=2016-01-30T05:42:47.789-07:00[Asia/Shanghai]
Between 在指定时间范围内请求被调用,可用来解决阶段消费高峰期扩容消费服务
spring:
  cloud:
    gateway:
      routes:
      - id: between_route
        uri: https://example.org
        predicates:
        - Between=2017-01-20T17:42:47.789-07:00[Asia/Shanghai], 2017-01-21T17:42:47.789-07:00[Asia/Shanghai]
Cookie 当cookie中包含指定key-value时执行,value可采用正则表达式方式
spring:
  cloud:
    gateway:
      routes:
      - id: cookie_route
        uri: https://example.org
        predicates:
        # 表示cookie中包含name=uid,并且value匹配ch.p的请求(key-value以,分割)
        - Cookie=uid, ch.p 
Header 验证请求头是否包含指定内容,可用于鉴权
spring:
  cloud:
    gateway:
      routes:
      - id: header_route
        uri: https://example.org
        predicates:
        - Header=X-Request-Id, \d 
Host
spring:
  cloud:
    gateway:
      routes:
      - id: host_route
        uri: https://example.org
        predicates:
        - Host=**.somehost.org,**.anotherhost.org
Method 指定请求的Method(GET or POST等等)
spring:
  cloud:
    gateway:
      routes:
      - id: method_route
        uri: https://example.org
        predicates:
        - Method=GET,POST
Path 很常用的一个,根据路径路由服务
spring:
  cloud:
    gateway:
      routes:
      - id: path_route
        uri: https://example.org
        predicates:
        - Path=/red/{segment},/blue/{segment}
Query 匹配查询参数
spring:
 cloud:
   gateway:
     routes:
     - id: query_route
       uri: https://example.org
       predicates:
       - Query=green # 查询参数有green=abc时命中
RemoteAddr 路由指定服务器发起的服务
spring:
  cloud:
    gateway:
      routes:
      - id: remoteaddr_route
        uri: https://example.org
        predicates:
        - RemoteAddr=192.168.1.1/24
Weight 设置路由权重,灰度上线时可用于适度引流
spring:
  cloud:
    gateway:
      routes:
      - id: weight_high
        uri: https://weighthigh.org
        predicates:
        - Weight=group1, 8 # 80% 引流到https://weighthigh.org
      - id: weight_low
        uri: https://weightlow.org
        predicates:
        - Weight=group1, 2 # 20% 引流到 https://weightlow.org

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfjbhfk
系列文章
更多 icon
同类精品
更多 icon
继续加载