springCloudGateway中的断言Predicate如何使用

文章展示了如何在`application.yml`中配置SpringCloudGateway,包括定义路由ID、URI、断言(谓词)如时间限制、Cookie和Header条件、请求方法、主机、路径和查询参数,以及过滤器如`StripPrefix`用于去掉请求路径的一部分。配置还涉及到请求的权重分配和IP地址范围限制。
摘要由CSDN通过智能技术生成

 application.yml

server:
  port: 10010
spring:
  application:
    name: gateway-server
  cloud:
    gateway:
      routes:
        - id: coms
          uri: lb://eurka-com
          predicates: #谓词/断言,限制路由请求
            #(The After Route Predicate Factory),在此时间之后发送才可以请求成功
            - After=2017-01-20T17:42:47.789-07:00[America/Denver]
            #(The Before Route Predicate Factory),在此时间之前发送才可以请求成功
            - Before=2017-01-20T17:42:47.789-07:00[America/Denver]
            #(The Between Route Predicate Factory),在此时间段之间请求才可以成功
            - Between=2023-01-20T17:42:47.789-07:00[America/Denver], 2024-01-21T17:42:47.789-07:00[America/Denver]
            #(The Cookie Route Predicate Factory),携带cookie且字段名为cookieName,值匹配正则cookieValue
            - Cookie=cookieName, cookieValue
            #(The Header Route Predicate Factory),请求头中存在header字段名为HeaderName,值匹配正则HeaderValue
            - Header=HeaderName, HeaderValue
            #(The Host Route Predicate Factory),请求路径符合规则,例如:www.aaaHoste.com, hello.bbbHost.com
            - Host=**.aaaHost.com,**.bbbHost.com
            #(The Method Route Predicate Factory),请求方式符合规则,如例只允许get/post请求通过
            - Method=GET,POST
            #(The Path Route Predicate Factory),路径符合规则才可以请求成功,例如:/comsSer/coms,/login/admin;pathValue的值可用 ServerWebExchangeUtils.getPathPredicateVariables(exchange).get("pathValue") 来获取到
            - Path=/comsSer/**,/login/{pathValue}
            #(The Query Route Predicate Factory),请求携带的参数符合规则
            - Query=name    #请求携带的参数中需包含name字段,
            - Query=name,Lucy.   #请求携带的参数中需包含name字段,且值符合正则Lucy.,例如LucyAAA,Lucyfff;
            #(The RemoteAddr Route Predicate Factory),请求ip符合规则,如:192.168.0.1到192.168.0.24
            - RemoteAddr=192.168.0.1/24
            #(The Weight Route Predicate Factory),所有请求将会被分流,20%会分流到该地址eurka-com下,80%会分流到eurka-com2
            - Weight=group1, 2
        - id: coms2
          uri: lb://eurka-com2
          predicates:
            - Weight=group1, 8

          filters:  #接受到的请求去除前一段路由,即将/comsSer去除,例如符合断言规则的请求路径localhost:10010//comsSer/com,转发后路径为localhost:8081//comsSer/com,但在eurka-com服务中的路径为/com,通过StripPrefix去除掉前一段路由,变为localhost:8081//com即可转发请求成功
            - StripPrefix=1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值