当前位置: 首页 > news >正文

Spring Cloud全解析:网关之GateWay断言

GateWay断言

断言Predicate

gateWay网关中提供了多种断言方式

After断言

Loaded RoutePredicateFactory [After]

After匹配在当前日期时间之后发生的请求

spring:cloud:gateway:routes:- id: after_routeuri: https://example.orgpredicates:- After=2021-09-06T16:02:25.738+08:00[Asia/Shanghai]
Before断言

Loaded RoutePredicateFactory [Before]

Before匹配在当前日期时间之前发生的请求

spring:cloud:gateway:routes:- id: before_routeuri: https://example.orgpredicates:- Before=2021-09-06T16:02:25.738+08:00[Asia/Shanghai]
Between断言

Loaded RoutePredicateFactory [Between]

Between匹配在两个日期之间发生的请求

spring:cloud:gateway:routes:- id: between_routeuri: https://example.orgpredicates:- Between=2021-09-06T16:02:25.738+08:00[Asia/Shanghai], 2021-09-07T16:02:25.738+08:00[Asia/Shanghai]
Cookie断言

Loaded RoutePredicateFactory [Cookie]

Cookie会根据cookie的name以及值的正则表达式进行匹配

spring:cloud:gateway:routes:- id: cookie_routeuri: https://example.orgpredicates:- Cookie=userName, zhangsan  # userName为Cookie的name,zhangsan为cookie的值的正则表达式
Header断言

Loaded RoutePredicateFactory [Header]

Header是匹配请求头的name以及值的正则表达式进行匹配

spring:cloud:gateway:routes:- id: header_routeuri: https://example.orgpredicates:- Header=X-Request-Id, \d+  #X-Request-Id是请求头的name,\d+为请求头所对应的值的正则表达式
Host断言

Loaded RoutePredicateFactory [Host]

Host进行域名匹配,Ant模式匹配

spring:cloud:gateway:routes:- id: host_routeuri: https://example.orgpredicates:- Host=**.somehost.org,**.anotherhost.org
Method断言

Loaded RoutePredicateFactory [Method]

Method 匹配HTTP方法

spring:cloud:gateway:routes:- id: method_routeuri: https://example.orgpredicates:- Method=GET,POST
Path断言

Loaded RoutePredicateFactory [Path]

Path 进行路径匹配

spring:cloud:gateway:routes:- id: host_routeuri: https://example.orgpredicates:- Path=/foo/{segment},/bar/{segment}
Query断言

Loaded RoutePredicateFactory [Query]

Query 查询参数匹配

spring:cloud:gateway:routes:- id: query_routeuri: https://example.orgpredicates:- Query=foo, ba.  #如果查询参数为foo并且其值符合ba.正则表达式
ReadBodyPredicateFactory断言

Loaded RoutePredicateFactory [ReadBodyPredicateFactory]

RemoteAddr断言

Loaded RoutePredicateFactory [RemoteAddr]

RemoteAddr 远程地址匹配

spring:cloud:gateway:routes:- id: remoteaddr_routeuri: https://example.orgpredicates:- RemoteAddr=192.168.1.1/24
Weight断言

Loaded RoutePredicateFactory [Weight]

Weight 权重匹配,接收group和weight两个参数,权重是按照组进行计算的

spring:cloud:gateway:routes:- id: weight_highuri: https://weighthigh.orgpredicates:- Weight=group1, 8- id: weight_lowuri: https://weightlow.orgpredicates:- Weight=group1, 2     #group1是组名, 会有80%的请求访问 https://weighthigh.org,20%的请求访问https://weightlow.org
CloudFoundryRouteService断言

Loaded RoutePredicateFactory [CloudFoundryRouteService]

配置方式

gateway配置断言有两种方式

以Cookie断言为例,Cookie断言的配置类如下

public static class Config {@NotEmptyprivate String name;@NotEmptyprivate String regexp;public String getName() {return name;}public Config setName(String name) {this.name = name;return this;}public String getRegexp() {return regexp;}public Config setRegexp(String regexp) {this.regexp = regexp;return this;}}
  • 简短配置

    断言名称和参数之间是=,多个参数之间,相隔,按照定义的顺序依次赋值

    spring:cloud:gateway:routes:- id: after_routeuri: https://example.orgpredicates:- Cookie=mycookie,mycookievalue
    
  • 全面扩展参数

    每个参数都使用 字段名:字段值 表示

    spring:cloud:gateway:routes:- id: after_routeuri: https://example.orgpredicates:- name: Cookieargs:name: mycookieregexp: mycookievalue
    

https://zhhll.icu/2021/框架/微服务/springcloud/网关/GateWay/2.GateWay断言/

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于FreeRTOS的STM32多功能手表
  • STM32-PWM驱动舵机——HAL库
  • Kafka 到数据仓库:使用 bend-ingest-kafka 将消息加载到 Databend
  • vivado USED_IN
  • C#骑砍逻辑类Mod制作详细解说
  • C++系列-泛型编程之类模板
  • 51单片机——模块化编程
  • Unity编辑器扩展之Hierarchy面板扩展
  • 数美Android SDK
  • 【412】【统计近似相等数对 I】
  • docker python 3.11 容器报错
  • [M模拟] lc3153. 所有数对中数位不同之和(模拟+按位统计)
  • golang 多版本管理工具
  • IDEA没有SQL语句提示
  • 【Springboot服务实现类】用户登录逻辑梳理(未完待续)
  • [数据结构]链表的实现在PHP中
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • Bootstrap JS插件Alert源码分析
  • canvas 绘制双线技巧
  • Django 博客开发教程 16 - 统计文章阅读量
  • Flannel解读
  • iOS小技巧之UIImagePickerController实现头像选择
  • IP路由与转发
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • java取消线程实例
  • PAT A1092
  • Spring-boot 启动时碰到的错误
  • vue-router的history模式发布配置
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 对象管理器(defineProperty)学习笔记
  • 记录一下第一次使用npm
  • 我这样减少了26.5M Java内存!
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​520就是要宠粉,你的心头书我买单
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • ![CDATA[ ]] 是什么东东
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #Z0458. 树的中心2
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (55)MOS管专题--->(10)MOS管的封装
  • (C)一些题4
  • (javascript)再说document.body.scrollTop的使用问题
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (七)理解angular中的module和injector,即依赖注入
  • .Net 6.0 处理跨域的方式
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料