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

spring cloud gateway谓词工厂 Predicate Factory

Predicate Factory 称为谓词工厂或断言工厂
默认的工厂类都位于 org.springframework.cloud.gateway.handler.predicate 包下
根据版本不同有多有少
本文spring-cloud.version=2021.0.5 spring-cloud-gateway=3.1.4
官方文档:https://docs.spring.io/spring-cloud-gateway/reference/spring-cloud-gateway/request-predicates-factories.html
官方文档2:https://cloud.spring.io/spring-cloud-gateway/multi/multi_gateway-request-predicates-factories.html

类型

工厂类

基于时间的谓词工厂

AfterRoutePredicateFactory

时间点之后

BeforeRoutePredicateFactory

时间点之前

BetweenRoutePredicateFactory

时间段中间

请求头

CookieRoutePredicateFactory

请求头cookie

HeaderRoutePredicateFactory

请求头

HostRoutePredicateFactory

请求头Host

请求体

ReadBodyRoutePredicateFactory

请求体

请求

MethodRoutePredicateFactory

请求方式post get put等

PathRoutePredicateFactory

请求路径

QueryRoutePredicateFactory

请求查询参数

RemoteAddrRoutePredicateFactory

远程地址,可自定义解析远程ip

XForwardedRemoteAddrRoutePredicateFactory

远程地址,通过 X-Forwarded-For 头解析远程ip

权重

WeightRoutePredicateFactory

按权重分配,group和weight

云平台

CloudFoundryRouteServiceRoutePredicateFactory

基于CloudFoundry云平台的路由分配,CloudFoundry可看做对标K8s的开源PaaS平台

一、基于时间的谓词工厂
(一)、AfterRoutePredicateFactory

这个断言接收一个时间参数(java ZonedDateTime类型),断言匹配在指定日期时间之后发生的请求。 下面是例子

application.yml

spring:cloud:gateway:routes:- id: after_routeuri: https://example.orgpredicates:- After=2023-09-26T08:00:00.000+08:00[Asia/Shanghai]

这个路由匹配东八区2023年9月26日8点之后的任何请求。

(二)、BeforeRoutePredicateFactory

这个断言接收一个时间参数(java ZonedDateTime类型),断言匹配在指定日期时间之前发生的请求。 下面是例子

application.yml

spring:cloud:gateway:routes:- id: before_routeuri: https://example.orgpredicates:- Before=2023-09-26T08:00:00.000+08:00[Asia/Shanghai]

这个路由匹配东八区2023年9月26日8点之前的任何请求。

(三)、BetweenRoutePredicateFactory

这个断言接收两个时间参数(java ZonedDateTime类型),断言匹配在两个时间之前发生的请求。第二个时间参数必须大于第一个时间参数。 下面是例子

spring:cloud:gateway:routes:- id: between_routeuri: https://example.orgpredicates:- Between=2023-09-26T08:00:00.000+08:00[Asia/Shanghai], 2023-09-27T08:00:00.000+08:00[Asia/Shanghai]

这个路由匹配东八区2023年9月26日8点之后且在2023年9月27日8点之前的任何请求。

二、请求头

(一)、CookieRoutePredicateFactory

这个断言接收两个参数,cookie名和正则表达式regexp,正则表达式是String.matche()里的参数,断言匹配cookie名对应的值符合正则表达式的请求。 下面是例子

application.yml

spring:cloud:gateway:routes:- id: cookie_routeuri: https://example.orgpredicates:- Cookie=chocolate, ch.p

这个路由匹配cookie名为chocolate,并且值符合正则表达式ch.p的请求。

TBD

三、请求体

TBD

四、请求

TBD

五、权重

TBD

六、云平台

(一)、CloudFoundryRouteServiceRoutePredicateFactory

基于CloudFoundry云平台的路由分配,CloudFoundry可看做对标K8s的开源PaaS平台,目前这个谓词官方文档没有解释,通过查看相关代码提交发现,这是为了支持CloudFoundry云平台里的CF Router Service组件,它判断header里面是否有属性:X-CF-Forwarded-Url、X-CF-Proxy-Signature和X-CF-Proxy-Metadata。当header里面同时有上述三个属性时,请求被转发。请求头里的url带的url是动态的。

相关github pull提交:Add predicate to detect requests made for a Cloud Foundry route service by fitzoh · Pull Request #241 · spring-cloud/spring-cloud-gateway · GitHub

相关github issue:Support CF Route Services · Issue #190 · spring-cloud/spring-cloud-gateway · GitHub

相关文章:

spring cloud gateway谓词工厂 Predicate Factory

Predicate Factory 称为谓词工厂或断言工厂 默认的工厂类都位于 org.springframework.cloud.gateway.handler.predicate 包下 根据版本不同有多有少 本文spring-cloud.version2021.0.5 spring-cloud-gateway3.1.4 官方文档:https://docs.spring.io/spring-cloud-gat…...

美丽塔O(n)解法单调栈

题目 见上一篇&#xff1a; 较难算法美丽塔时间复杂度O(n)-CSDN博客 时间复杂度 O(n) 分析 接着上篇。从左向右依次处理Left&#xff0c;处理Left[i]时&#xff0c;从右向左寻找第一个符合maxHeights[j]<maxHeights[i]的j。如果j1<j2&#xff0c;且maxHeights[j1]&g…...

​的PDF文件压缩软件PDF Squeezer mac中文版​软件特点

PDF Squeezer mac是一款macOS平台上的PDF文件压缩软件&#xff0c;可以帮助用户快速地压缩PDF文件&#xff0c;从而减小文件大小&#xff0c;使其更容易共享、存储和传输。PDF Squeezer使用先进的压缩算法&#xff0c;可以在不影响文件质量的情况下减小文件大小。 PDF Squeezer…...

JS Ajax 封装

ajax 封装 一、 什么是Ajax&#xff1f;二、 Ajax的优缺点&#xff1f;2.1 优点2.2 缺点 三、 Ajax的使用3.1 状态码3.2 xhr的基本使用3.3 ajax原生封装&#xff1a;3.3.1 触发GET请求&#xff1a;3.3.2 调用POST请求&#xff1a; 四、Ajax的约束 一、 什么是Ajax&#xff1f; …...

观测云产品更新 | 优化日志数据转发、索引绑定、基础设施自定义等

观测云更新 日志 数据转发&#xff1a;新增外部存储转发规则数据查询&#xff1b;支持启用/禁用转发规则&#xff1b;绑定索引&#xff1a;日志易新增标签绑定&#xff0c;从而实现更细颗粒度的数据范围查询授权能力。 基础设施 > 自定义 【默认属性】这一概念更改为【必…...

trio ValueEvent

class AsyncValue(Generic[T]): 值包装器&#xff0c;提供等待值或过渡的能力。 概要&#xff1a; >>> a AsyncValue(0) # 注意&#xff1a;可以包装任何类型&#xff08;枚举&#xff0c;元组&#xff0c;...&#xff09; >>> ... >>> a.valu…...

js 新学一招,点击出现弹框,点击其他地方关闭弹框

文章目录 需求分析 需求 鼠标点击菜单&#xff0c;出现二级菜单&#xff0c;当点击其他地方时&#xff0c;二级菜单自动关闭 分析 <template><el-popoverv-model"visible"></el-popover> </template> <script> export default {dat…...

c#扩展包-Stateless

准备 Stateless是一个有限状态机扩展包。在c#项目中可以直接通过NuGet安装。 使用他需要先用枚举写好你所有可能的状态和子状态。 例如移动&#xff0c;下蹲&#xff0c;空闲&#xff0c;跳跃&#xff0c;游泳&#xff0c;奔跑&#xff0c;走路。 其中&#xff0c;奔跑和走路…...

Lua函数

--函数--无参无返回值 function F1()print("F1函数") end F1() print("*****************")--有参 function F2(a)print("F2函数"..a) end F2(2) --如果传入参数和函数数量不一致 --不会报错只是补空 F2(1,2) print("*****************&quo…...

左对齐和右对齐

%d默认为左对齐&#xff0c;%5d为左对齐&#xff08;以空格补齐&#xff09;&#xff0c;%05d为左对齐&#xff08;以0补齐&#xff09;&#xff0c;%-5d右补齐&#xff08;以空格补齐&#xff09;&#xff0c;整数和小数同理。%.xf,x为小数点后保留的位数。 #include<stdi…...

高仿互站网站源码 后台手机端两套模板 电脑端二十套模版

高仿互站网 后台手机端两套模板 电脑端二十套模版&#xff0c;简单介绍几个功能&#xff0c; 支持用户注册开店 开店申请&#xff0c;支持用户发布自己商品 支持卡密形式或实物形式&#xff0c; 支持用户自己发布求助 任务大厅功能&#xff0c;源码完整 更多功能自己去发现吧…...

Spring Controller内存马

获取当前上下文运行环境 getCurrentWebApplicationContext WebApplicationContext context ContextLoader.getCurrentWebApplicationContext(); 在SpringMVC环境下获取到的是一个XmlWebApplicationContext类型的Root WebApplicationContext&#xff1a; 在Spring MVC环境中…...

Mysql004:用户管理

前言&#xff1a;本章节讲解的是mysql中的用户管理&#xff0c;包括&#xff08;管理数据用户&#xff09;、&#xff08;控制数据库的访问权限&#xff09;。 目录 1. 查询用户 2. 创建用户 3. 修改用户密码 4. 删除用户 5. 权限控制 1. 查询用户 在mysql数据库中&#xff0…...

计算机视觉与深度学习 | 视觉里程计(Visual Odometry,VO)研究现状

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 视觉里程计(Visual Odometry,VO) 研究背景及意义视觉里程计国内外研…...

Mojo:新型AI语言中的7个令人惊叹的Python升级,用简单的英语解释人工智能

Mojo&#xff1a;新型AI语言中的7个令人惊叹的Python升级 编程之美 用简单的英语解释人工智能 编程之美 由Coding Beauty设计的图像&#xff0c;使用Mojo标志和Python标志。 它比C更快&#xff0c;与Python一样简单&#xff0c;但速度提高了35000倍。 进入Mojo&#xff1a;一种…...

TCP连接的三次握手与四次挥手【重点】

TCP的运输连接管理概述 TCP是面向连接的协议&#xff0c;它基于运输连接来传送TCP报文段 TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程 TCP运输连接有以下三个阶段 TCP的运输连接管理就是使运输连接的建立和释放都能正常的进行 TCP建立连接的三次握手&a…...

​重生奇迹MU新手玩家如何快速熟悉游戏​

新手玩家必须掌握什么呢&#xff0c;建议新手玩家去官方网站上面看看游戏的详细介绍&#xff0c;必须要好的熟悉游戏的各种玩法&#xff0c;让玩家可以有一个初步的认识。 所以这方面是非常重要的&#xff0c;建议每位重生奇迹MU玩家都应该注重这些东西。下面我们就来简单介绍…...

MySQL 用户权限和远程访问设置

目录 一、用户操作查看当前拥有用户创建用户修改用户密码删除用户给root用户开放外网访问 二、用户权限操作授予权限的原则查看授予用户的权限给用户添加权限回收权限 一、用户操作 先要使用root用户登录MySQL后在执行后面操作 查看当前拥有用户 SELECT host,user,Grant_pri…...

Golang基础之关键字

Type 参考 ## https://blog.csdn.net/SHELLCODE_8BIT/article/details/122837699 type有如下几种用法&#xff1a; 定义结构体定义接口类型定义类型别名类型查询 类型定义 type Celsius float64 // 摄氏温度 type Fahrenheit float64 // 华氏温度const (AbsoluteZeroC Cels…...

DataFrame插入多列PerformanceWarning: DataFrame is highly fragmented.

DataFrame插入多列PerformanceWarning: DataFrame is highly fragmented. dataframe列比较多&#xff0c;增加列的代码如下&#xff1a; dfpd.DataFrame() for i in range(1000):vlist[]for j in range(1000):vlist.append(j) df[COL_ str(i)] vlistdf警告错误&#x…...

如何快速上手小米手表表盘设计:免费工具Mi-Create的终极指南

如何快速上手小米手表表盘设计&#xff1a;免费工具Mi-Create的终极指南 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 还在为小米手表找不到心仪的表盘而烦恼…...

观察Taotoken用量看板如何精细化管控API调用成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Taotoken用量看板如何精细化管控API调用成本 对于依赖大模型API进行开发的项目团队而言&#xff0c;成本控制与预算管理是项目…...

终极指南:如何用MAA Assistant Arknights实现明日方舟全自动化

终极指南&#xff1a;如何用MAA Assistant Arknights实现明日方舟全自动化 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: htt…...

独立开发者利用Taotoken Token Plan套餐实现个人项目的长期成本规划

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者利用Taotoken Token Plan套餐实现个人项目的长期成本规划 对于独立开发者或小型工作室而言&#xff0c;运营多个集成大语…...

在多模型AI应用开发中利用Taotoken实现成本与性能的平衡

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在多模型AI应用开发中利用Taotoken实现成本与性能的平衡 开发一个复杂的AI应用&#xff0c;往往意味着需要调用多个模型来完成不同…...

Spring Boot安全脚手架:openclaw-security-starter核心架构与实战指南

1. 项目概述&#xff1a;一个面向开发者的安全脚手架最近在梳理团队内部的安全开发规范时&#xff0c;发现一个普遍痛点&#xff1a;每个新项目启动&#xff0c;安全相关的配置总是东拼西凑&#xff0c;从依赖扫描、密钥管理到API安全策略&#xff0c;都得重新来一遍&#xff0…...

计算机光标自动化控制:从模拟点击到智能交互的技术实现与应用

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“Computer-cursor-tech-support”。初看这个标题&#xff0c;你可能会有点摸不着头脑&#xff1a;电脑光标和技术支持&#xff0c;这两者是怎么联系到一起的&#xff1f;是开发了一个新的光标样式&am…...

Midjourney铂金印相风格实战手册(从Prompt工程到Lightroom精修全流程)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;铂金印相风格的美学溯源与数字复现逻辑 铂金印相&#xff08;Platinum Print&#xff09;诞生于19世纪晚期&#xff0c;以铂族金属盐在纸基上直接成像&#xff0c;呈现无光泽、宽广影调与近乎永久的化学…...

Flowable工作流实战:手把手教你安全删除运行中的任务(附完整SQL与避坑指南)

Flowable工作流实战&#xff1a;安全删除运行中任务的完整指南 在业务流程管理系统中&#xff0c;Flowable作为一款轻量级的工作流引擎&#xff0c;因其高效的流程执行能力和灵活的扩展性而广受开发者青睐。然而在实际开发过程中&#xff0c;我们难免会遇到需要强制删除运行中任…...

城通网盘直连解析终极解决方案:告别限速,实现全速下载的完整指南

城通网盘直连解析终极解决方案&#xff1a;告别限速&#xff0c;实现全速下载的完整指南 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘的龟速下载而烦恼吗&#xff1f;每次下载大文件都…...