1谓词 · SpringCloud微服务实战 · 看云
在简单使用这一节我们主要来说一下内置的路由,并介绍如何使用。
官方网址:https://cloud.spring.io/spring-cloud-gateway/reference/html/#gateway-request-predicates-factories
Spring Cloud Gateway内置了一系列的路由谓词工厂,以便我们可以在开发中灵活的使用Gateway进行请求转发。我这里将Gateway内置的所有路由谓词工厂整理成了表格,如下:
| 路由谓词工厂 | 作用 | 参数 |
|---|---|---|
| After | 当且仅当请求时的时间After配置的时间时,才转发该请求 | 一个带有时区的具体时间 |
| Before | 当且仅当请求时的时间Before配置的时间时,才转发该请求 | 一个带有时区的具体时间 |
| Between | 当且仅当请求时的时间Between配置的时间段时,才转发该请求 | 一个带有时区的具体时间段 |
| Cookie | 当且仅当请求时携带的Cookie名称及值与配置的名称及值相符时,才转发该请求 | Cookie的名称及值,支持使用正则表达式来匹配值 |
| Header | 当且仅当请求时携带的Header名称及值与配置的名称及值相符时,才转发该请求 | Header的名称及值,支持使用正则表达式来匹配值 |
| Host | 当且仅当请求时名为Host的Header的值与配置的值相符时,才转发该请求 | Host的值,支持配置多个且支持使用通配符 |
| Method | 当且仅当请求时所使用的HTTP方法与配置的请求方法相符时,才转发该请求 | HTTP请求方法,例如GET、POST等 |
| Path | 当且仅当请求时所访问的路径与配置的路径相匹配时,才转发该请求 | 通配符、占位符或具体的接口路径,可以配置多个 |
| Query | 当且仅当请求时所带有的参数名称与配置的参数名称相符时,才转发该请求 | 参数名称和参数值(非必须),支持使用正则表达式对参数值进行匹配 |
| RemoteAddr | 当且仅当请求时的IP地址与配置的IP地址相符时,才转发该请求 | IP地址或IP段 |
| Weight | 当且仅当配置了权重,并且多余一个的情况时,根据配置的权重才可以调用具体的服务,一般调用的服务是同一个且负载部署的应用。 | 数字,数据越大,被调用的次数越多。 |
注意:当predicates配置项只配置了一个Predicate且没有配置Path时,Path的默认值为/**。
使用以下代码可以打印带有时区的当前时间,然后再自行修改成特定时间即可:
System.out.println(ZonedDateTime.now());
下面我们针对每个谓词进行分析
所有的谓词和过滤器是可以根据需求整合在一起使用的