现在要创建一个服务(比如叫 FilterService)来实现敏感词过滤,该服务第一版的设计也就一个方法,入参也是一个 String 类型的文本变量 text。敏感词过滤的核心方法,会借助阿里的 API 来实现。
现在要求该服务 FilterService 能实现“请求整合”与“限流”这两个功能。
“请求整合”是考虑到每次请求阿里的 API 时传入的字符太少而不划算,所以想把多个请求该服务(FilterService)的 HTTP 请求做一个合并,当这些请求的入参字符数达到 1 万个字符时,才决定去调阿里的 API,以达到降低调用次数并省钱的目的。
“限流”是指如果某一个第三方服务访问 FilterService 而超过了一定的次数(比如 5 次),就会被直接 return,即拒绝为他提供敏感词过滤。
尝试过使用 CountDownLatch,但是感觉无法根据字符数 1 万来做判断。
想问一下,SpringBoot 里有没有什么机制可以从宏观上操作 HTTP 请求?并且拿到这一系列请求的入参,从而判断入参字符的总数是否达到某一个阈值(1 万个字符)。
另外,当这些 HTTP 请求被我“抓住”后,我最多只能等待三秒就必须放行,不然第三方服务的单次请求会耗时过长。
面向未来微服务:熟练掌握Spring Cloud Alibaba
了解课程