Spring Cloud Gateway Predicate工厂配置(入门必看)

本文内容参考官方文档:Spring Cloud Gateway官方 -------如有问题,恳请指点!

Spring Cloud Gateway介绍:

网关作为流量的入口,常用的功能包括路由转发,权限校验,限流控制,Spring Cloud Gateway作为Spring Cloud官方提出的第二代网关框架,取代了zuul网关

基本工作流程(白话): 请求发送给网关→断言匹配(Predicate)→(符合→经过n个过滤器到达指定地方)|| (不符合)
基本工作流程(图-官方):
Spring Cloud Gateway官方基本工作流程图

Spring Cloud Gateway 断言(Predicate)判断:

在此只做几个示例讲解,更多请去官方文档学习

1.The After Route Predicate Factory
该断言匹配在指定日期时间之后发生的请求

spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates:
        - After=2017-01-20T17:42:47.789-07:00[America/Denver]

图解 例子
在这里插入图片描述
自己修改时间后的配置:
在这里插入图片描述
注意看 现在的时间是2020-07-09 15:34
配置的时间为2020-01-20 17:42
可以匹配成功~下面来访问试试
在这里插入图片描述
没有问题~
匹配不成功的示例再次就不多赘述了~

2.The Query Route Predicate Factory
param(参数)和可选的regexp(正则表达式)断言判断(其是Java正则表达式)。以下示例配置查询路由谓词

#只匹配参数的案例
spring:
  cloud:
    gateway:
      routes:
        - id: after_route
          uri: https://www.bilibili.com/
          predicates:
            - Query=uri

        - id: qq_route
          uri: https://www.qq.com/
          predicates:
            - Query=qq

在这里插入图片描述
运行代码后 我们发现只要值带有qq,或者uri的就可以访问到对应的路由地址
在这里插入图片描述
好嘞,我们来测试第二种~
这里我们带上可选的regexp(正则表达式)

#只匹配参数的案例
spring:
  cloud:
    gateway:
      routes:
        - id: after_route
          uri: https://www.bilibili.com/
          predicates:
            - Query=uri, user.*

        - id: qq_route
          uri: https://www.qq.com/
          predicates:
            - Query=qq, admin.*

在这里插入图片描述

正则表达式:.匹配除换行符 \n 之外的任何单字符,*匹配前面的子表达式零次或多次..*匹配任何单字符零次或多次

我们来重启项目,再来一次示范:
在这里插入图片描述
3.The Weight Route Predicate Factory
该重量路线断言工厂有两个参数:group(分组)和weight(重量)
权重是按组计算的。以下示例配置权重路由谓词:

#只匹配参数的案例
spring:
  cloud:
    gateway:
      routes:
        - id: after_route
          uri: https://www.bilibili.com/
          predicates:
            - Weight=group1, 5

        - id: qq_route
          uri: https://www.qq.com/
          predicates:
            - Weight=group1, 5

效果为:访问n次,每个页面会被访问大概n/2

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值