We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
你的特性请求和某个问题有关吗?请描述
目前的Apollo OpenAPI缺失必要的限流功能,很容易出现业务端的滥用或者误用,导致请求量过大的情况,影响apollo-portal的稳定性 在 apollo-portal中的 ConsumerAuthenticationFilter 是否可以新增限流功能
ConsumerAuthenticationFilter
清晰简洁地描述一下你希望的解决方案
在 apollo-portal中的 ConsumerAuthenticationFilter 是否可以新增限流功能 初步方案:
清晰简洁地描述一下这个特性的备选方案
其它背景
BTW:如果觉得这个特性合理,我可以细化实现方案 并实现
The text was updated successfully, but these errors were encountered:
Sounds a good idea.
Sorry, something went wrong.
此方案是基于单机限流方案,且所有限流数据均保存在本地缓存
元数据设计:
open.api.limit.count
open.api.limit.enabled
open.api.limit.white
实现逻辑:
RateLimiter接口设计 public interface RateLimiter { boolean tryAcquire(); boolean tryAcquire(int permits) boolean tryAcquire(int permits, long timeout, TimeUnit unit) void setRate(double permitsPerSecond); double getRate(); void destroy() }
BTW: 实际使用经验中,Guava RateLimiter在初始化时存在第一秒的误限,通过新增默认1S的WARMUP时间不限流来解决,是否有必要增加WARMUP逻辑,或者其他更好的实现方案
不太建议设置白名单直接跳过,可以通过配置较大的限流值?
可以去除白名单设置,可以通过增加一些逻辑来解决,当token的LimitCount发生变化时,需要立刻销毁 old RateLimiter,重建该Token的RateLimiter来实时生效
Successfully merging a pull request may close this issue.
你的特性请求和某个问题有关吗?请描述
目前的Apollo OpenAPI缺失必要的限流功能,很容易出现业务端的滥用或者误用,导致请求量过大的情况,影响apollo-portal的稳定性
在 apollo-portal中的
ConsumerAuthenticationFilter
是否可以新增限流功能清晰简洁地描述一下你希望的解决方案
在 apollo-portal中的
ConsumerAuthenticationFilter
是否可以新增限流功能初步方案:
ConsumerAuthenticationFilter
处理获取每个Token的限流值,并进行限流逻辑处理清晰简洁地描述一下这个特性的备选方案
其它背景
BTW:如果觉得这个特性合理,我可以细化实现方案 并实现
The text was updated successfully, but these errors were encountered: