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回答
-
您好的,你的请求用Filter或者Spring MVC 拦截器 应该就能解决。
思路大致:
拦截住请求,然后获取用户请求信息,并判断是否满足条件
032021-08-30
相似问题