Springboot 请求整合与限流

来源:1-1 本课导学

TT_Course_Forever

2021-08-30

问题描述:

现在要创建一个服务(比如叫 FilterService)来实现敏感词过滤,该服务第一版的设计也就一个方法,入参也是一个 String 类型的文本变量 text。敏感词过滤的核心方法,会借助阿里的 API 来实现。

现在要求该服务 FilterService 能实现“请求整合”与“限流”这两个功能。

“请求整合”是考虑到每次请求阿里的 API 时传入的字符太少而不划算,所以想把多个请求该服务(FilterService)的 HTTP 请求做一个合并,当这些请求的入参字符数达到 1 万个字符时,才决定去调阿里的 API,以达到降低调用次数并省钱的目的。

“限流”是指如果某一个第三方服务访问 FilterService 而超过了一定的次数(比如 5 次),就会被直接 return,即拒绝为他提供敏感词过滤。

尝试过的解决方式:

尝试过使用 CountDownLatch,但是感觉无法根据字符数 1 万来做判断。

提问:

想问一下,SpringBoot 里有没有什么机制可以从宏观上操作 HTTP 请求?并且拿到这一系列请求的入参,从而判断入参字符的总数是否达到某一个阈值(1 万个字符)。

另外,当这些 HTTP 请求被我“抓住”后,我最多只能等待三秒就必须放行,不然第三方服务的单次请求会耗时过长。

写回答

1回答

大目

2021-08-30

您好的,你的请求用Filter或者Spring MVC 拦截器 应该就能解决。

思路大致:

拦截住请求,然后获取用户请求信息,并判断是否满足条件

0
3
TT_Course_Forever
非常感谢!
2021-08-30
共3条回复

Spring Cloud Alibaba微服务从入门到进阶

面向未来微服务:熟练掌握Spring Cloud Alibaba

3085 学习 · 1324 问题

查看课程