Gateway 路由断言工厂介绍

在 Spring Cloud Gateway 中,断言(Predicate)用于对请求进行判断(如根据请求方法、请求URI、请求头等等)。如果断言成功匹配,则当前路由才会生效,路由到具体服务。就如同我们代码中的 if 语句,仅 if 条件满足时,才会执行 if 语句中的代码块。例如:

if(条件) {
   // 代码块
}

上述 if 语句的 “条件” 可以认为是断言,“代码块” 可以认为是路由信息,当 “条件” 为 true 时,执行代码块,即执行路由信息。如下图:

Gateway 路由断言工厂介绍

上图中,客户端发送请求到网关,网管匹配断言,如果断言匹配,则执行对应的路由,路由将请求路由到具体的服务。例如,当客户端的请求和断言1匹配,将执行路由1,最终将请求路由到服务1。

为了我们使用 Spring Cloud Gateway 更为便捷,它提供了很多的内置断言,常用内置断言如下:

  • After 路由断言工厂将匹配在指定日期时间之后发生的请求。

  • Before 路由断言工厂将匹配在指定日期时间之前发生的请求。

  • Between 路由断言工厂将匹配发生在某个时间范围内的请求。

  • Cookie 路由断言工厂将匹配具有给定名称并且其值匹配正则表达式的 Cookies。

  • Header 路由断言工厂将与具有给定名称的请求头匹配,该请求头的值与正则表达式匹配。

  • Host 路由断言工厂将匹配与表达式匹配的 Host 头信息。

  • Method 路由断言工厂将匹配一个或多个 HTTP 请求方法。

  • Path 路由断言工厂将与请求的 URL 地址进行匹配。

  • Query 路由断言工厂将于请求的查询参数进行匹配。

  • RemoteAddr 路由断言工厂根据远程地址进行匹配。

  • Weight 路由断言工厂将根据分组和权重进行匹配。

  • XForwarded Remote Addr 路由断言工厂允许根据 HTTP 的 X-Forwarded-For 请求头过滤请求。

后续章节将对每个路由断言工厂进行详细介绍……

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号