Spring Cloud Gateway的路由配置的功能是以Spring WebFlux中的Handler Mapping为基础实现的。Spring Cloud Gateway也是由许多的路由谓词工厂组成的。当Http Request请求进行谓词匹配。匹配成功则进行下一步处理,否则谓词失败直接返回错误信息。
Spring Cloud Gateway内置了一系列的路由谓词工厂,以便我们可以在开发中灵活的使用Gateway进行请求转发。
路由谓词工厂的作用是:符合Predicate的条件,就使用该路由的配置,否则就不执行。
|
路由谓词工厂 |
作用 |
参数 |
|
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段 |
SpringCloudGateway基于SpringWebFlux的HandlerMapping实现路由配置,通过一系列路由谓词工厂进行请求匹配。这些谓词如After、Before、Between检查时间条件,Cookie和Header检查请求头,Host匹配域名,Method验证HTTP方法,Path匹配URL路径,Query检查查询参数,RemoteAddr过滤IP地址。这些谓词使得Gateway能灵活地根据多种条件转发请求。


被折叠的 条评论
为什么被折叠?



