官方配置文档地址
一、设置断言
- 修改application.yml文件
server:
port: 9527
spring:
application:
name: cloud-gateway
cloud:
gateway:
discovery:
locator:
enabled: true #开启从注册中心动态创建路由的功能,利用服务名进行路由
routes:
- id: provider_routh #路由ID,没有固定规则但是要求唯一,建议配合服务名
#uri: http://localhost:8001 #匹配后提供服务的路由地址
uri: lb://CLOUD-PROVIDER #lb://设置服务名
predicates:
- Path=/provider/hystrix/** #断言:路径相匹配进行路由
- id: provider_routh2 #路由ID,没有固定规则但是要求唯一,建议配合服务名
#uri: http://localhost:8001 #匹配后提供服务的路由地址
uri: lb://CLOUD-PROVIDER #lb://设置服务名
predicates:
- Path=/provider/hello/** #断言:路径相匹配进行路由
- Before=2021-08-25T12:53:46.101+08:00[Asia/Shanghai] #匹配这个时间之前的请求
- After=2021-08-25T12:53:46.101+08:00[Asia/Shanghai] #匹配这个时间之后的请求
- Between=2021-08-25T12:53:46.101+08:00[Asia/Shanghai],2021-09-25T12:53:46.101+08:00[Asia/Shanghai] #匹配这个两个时间的请求
- Cookie=username,zzyy
- Header=X-Request-Id,\d+ #请求头要有 X-Request-Id 属性并且值为整数的正则表达式
- Host=**.atguigu.com
- Method=GET #请求方式是 GET
- Query=username,\d+ #要有参数名 username 并且值还要是证书才能路由
- 获取指定格式的时间
public static void main(String[] args) {
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println(zonedDateTime);
}

二、我们注释其他的断言,测试 - Query=username,\d+
-
不加参数,进行调用,调用失败
不加参数.png
-
添加username参数,值是字符串,进行调用,调用失败
添加username参数,值是字符串.png
-
添加username参数,值是整数,进行调用,调用成功
添加username参数,值是整数.png
网友评论