SpringCloud-Gateway(谓词Before、After、Between)

46 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天,点击查看活动详情

Before、After、Between 这三个是时间相关的谓词,主要的作用是对请求时间时进行限制。
在这里的时间语法是标准的 utc 语法

Before

表示在指定的时间之前,它具体的使用方式如下: image.png 时间的格式要求是:年份-月份-日T小时:分钟:秒.毫秒+08:00[Asia/ShangHai] ,这个格式中 T 是一个特殊的占位字符,后面 +8 表示的东八区,在中国的话使用 Asia/ShangHai 或者 Asia/BeiJin ,第一个是亚洲的意思,后面使用上海或者北京也都是可以的。 这里设置的就是在 2020年-1月-31号18点之前是可以正常访问到的,如果在这个时间之后就不能正常访问了。

After

表示在指定时间之后才能正确访问接口,具体使用方式如下:

image.png

这里语法和上面语法一样

Between

这个表示在指定的时间范围内,路由才会进行对应的转发 这里需要注意的是时间格式,时间格式和上面一致,只是设置的不是一个时间,而是一整个时间段,例如以下这样设置:2020-01-31T18:00:00.000+08:00[Asia/ShangHai],2023-01-31T18:00:00.000+08:00[Asia/ShangHai]
以上这样进行设置的话表示可以在 2022年1月31号18点到2023年1月31号18点可以正常访问,路由会正常转发对应请求,不在这个时间范围内则不会正常转发请求。

注意:这里说到网关中的时间问题,之前项目中踩过一个坑,文件使用文件流进行下载,因为下载的时候需要进行打成zip压缩包,然后再进行下载,打包的过程速度较慢,所以下载的时候偶尔会超过网关的超时时间,从而出现下载出现504的情况。