`
raymond.chen
  • 浏览: 1418153 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

服务网关Spring Cloud Gateway -- Predicate介绍

 
阅读更多

      Predicate来源于Java 8,是Java8中引入的一个函数,Predicate接受一个输入参数,返回一个布尔值结果。该接口包含多种默认方法来将Predicate组合成其他复杂的逻辑(与,或,非)。可以用于接口请求参数校验、判断新老数据是否有变化需要进行更新操作。

 

      Spring Cloud Gateway利用Predicate的特性实现了各种路由匹配规则,有通过Header、请求参数等不同的条件来进行作为条件匹配到对应的路由。

 

       Spring Cloud Gateway内置的Predicate

             After

                   - After=2017-01-20T17:42:47.789+08:00[Asia/Shanghai]

 

             Before

                   - Before=2017-01-20T17:42:47.789+08:00[Asia/Shanghai]

 

             Between

                   - Between=2017-01-20T17:42:47+08:00[Asia/Shanghai], 2017-01-21T17:42:47+08:00[Asia/Shanghai]

 

             Cookie

                   - Cookie=CookieName, CookieValueRegx

 

             Header Header属性

                   - Header=HeaderName, HeaderValueRegx

                   - Header=X-Request-Id, \d+

 

             Host

                   - Host=**.somehost.org,**.anotherhost.org

 

             Method 请求方式

                   - Method=GET

                   - Method=POST

 

             Path 请求路径:支持模版变量,存在URI_TEMPLATE_VARIABLES_ATTRIBUTE中

                   - Path=/foo/{segment},/bar/{segment}

 

             Query 请求参数

                   - Query=ParamName

                   - Query=ParamName, ParamValueRegx

 

             RemoteAddr 请求ip地址

                   - RemoteAddr=IP地址/子网掩码

                   - RemoteAddr=192.168.1.1/24

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics