RoutePredicate
路径级别
必须匹配该路径才能路由
- Path=/payment/lb/**
时间级别
- After Route Predicate
spring:
application:
name: cloud-gateway
cloud:
gateway:
discovery:
locator:
enabled: true # 开启从注册中心动态创建路由的功能,利用微服务名进行路由
routes:
- id: payment_routh #路由ID,没有固定规则,但要求唯一
uri: lb://cloud-payment-service #匹配后提供服务的路由地址
#uri: http://localhost:8001 #匹配后提供服务的路由地址
predicates:
- Path=/payment/get/** #断言: 路径相匹配的进行路由,注意这里的Path首字母大写
- id: payment_routh2
uri: lb://cloud-payment-service #lb 是Load Balance的缩写
#uri: http://localhost:8001
predicates:
- Path=/payment/lb/**
- After=2020-07-24T15:23:36.048+08:00[Asia/Shanghai]
Before Route Predicate
Between Route Predicate
predicates:
- Path=/payment/lb/**
- Between=2020-07-24T15:23:36.048+08:00[Asia/Shanghai],2020-08-24T18:23:36.048+08:00[Asia/Shanghai]
Cookie级别
Cookie Route Predicate 需要两个参数,一个是 Cookie name,一个是正则表达式。
路由规则会通过获取相应的 Cookie name 值 和正则表达式去匹配,如果匹配上就会执行路由,如果匹配不上就不执行。
- Cookie=username,ezerbel
Header 级别
请求头存在X-Request-Id属性,并且值为整数【 \d+ 】的正则表达式
- Header=X-Request-Id,\d+
Host级别
- Host=**.ezerbel.com,**.lilith.org
Method级别
- Method=GET
查询条件级别
- Query=username, \d+ # 要有参数名username,并且还必须是整数才能路由