Spring Cloud Gateway 谓词工厂测试

After路由谓词工厂

server:
  port: 10010
spring:
  application:
    name: gateway-service
  cloud:
    gateway:
      routes:
        - id: consumer
          uri: lb://consumer-service
          predicates:
            - After=2023-07-15T03:05:00.789-07:00[America/Denver]

#http://localhost:10010/hello     
所有经过gateway-service路由的请求,在 2023-07-15T03:05:00.789-07:00[America/Denver] 后才能允许被访问。

Before路由谓词工厂和Between路由谓词工厂与上述例子差别不大,一个是在指定时间前可以访问,一个是在指定时间范围内可访问,不一一列举。

官方列举的例子:

Before Example

 Between Example

Cookie 路由谓词工厂

发送请求需要带有指定Cookie名称和相匹配的值

 以下举例: Cookie名称=name,相匹配的值=LZJ

predicates:
            - Cookie=name,LZJ

不匹配无法通过

 

Header 路由谓词工厂

输入一个或多个和数字。

predicates:
            - Header=X-Request-Id, \d+

Host 路由谓词工厂

跟前面一样我们要配置一下主机域名  例Host = 主机1,主机2,......

predicates:
            - Host=**.wnhz.com

错误示范:

 正确输入域名后:

 

Method 路由谓词工厂

指定请求方式

predicates:
            - Method=GET,POST

使用PUT方法请求失败:

改为POST请求后成功

 

 

Path路由谓词工厂

添加指定路径后可以访问;此处需要注意的是添加的路径在解析成真正的路径后还存在,

例如  http://localhost:10010/hello 是解析前的接口路径,由网关实际解析后的路径为

http://localhost:10002/hello,假如我添加了/consumer/**路径,那么解析后的路径即为http://localhost:10002/consumer/hello,这样并不会访问到正确的请求路径,所以需要和filters联用

Query路由谓词工厂

基于请求的参数接收请求

server:
  port: 10010
spring:
  application:
    name: gateway-service
  cloud:
    gateway:
      routes:
        - id: consumer
          uri: lb://consumer-service
          predicates:
            - Query=name,LZJ

 

RemoteAddr 路由谓词工厂

server:
  port: 10010
spring:
  application:
    name: gateway-service
  cloud:
    gateway:
      routes:
        - id: consumer
          uri: lb://consumer-service
          predicates:
            - RemoteAddr=192.168.192.1/24

Weight 路由谓词工厂

根据分配的权重决定同一分组路由的访问量,9090端口占八成,10001端口占两成

server:
  port: 10010
spring:
  application:
    name: gateway-service
  cloud:
    gateway:
      routes:
        - id: consumer-high
          uri: http://localhost:9090
          predicates:
            - Weight=group1, 8
        - id: consumer-low
          uri: http://localhost:10001
          predicates:
            - Weight=group1, 2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值