Class EventRateLimiter
java.lang.Object
cloud.opencode.base.event.security.EventRateLimiter
Event Rate Limiter
事件频率限制器
Rate limiter for controlling event publishing frequency.
用于控制事件发布频率的频率限制器。
Features | 主要功能:
- Per-event-type rate limiting - 按事件类型频率限制
- Sliding window algorithm - 滑动窗口算法
- Configurable limits - 可配置的限制
Usage Examples | 使用示例:
EventRateLimiter limiter = new EventRateLimiter(100);
limiter.setLimit(HighFrequencyEvent.class, 1000);
if (!limiter.allowPublish(event)) {
throw new EventSecurityException("Rate limit exceeded");
}
Security | 安全性:
- Thread-safe: Yes (concurrent data structures) - 线程安全: 是(并发数据结构)
- Since:
- JDK 25, opencode-base-event V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionEventRateLimiter(int defaultMaxPerSecond) Create rate limiter with default limit 使用默认限制创建频率限制器 -
Method Summary
Modifier and TypeMethodDescriptionbooleanallowPublish(Event event) Check if publishing is allowed 检查是否允许发布intgetCurrentCount(Class<? extends Event> eventType) Get current count for an event type 获取事件类型的当前计数intGet the default max per second 获取默认每秒最大值voidreset()Reset all rate limits 重置所有频率限制voidReset rate limit for a specific event type 重置特定事件类型的频率限制voidSet rate limit for a specific event type 为特定事件类型设置频率限制
-
Constructor Details
-
EventRateLimiter
public EventRateLimiter(int defaultMaxPerSecond) Create rate limiter with default limit 使用默认限制创建频率限制器- Parameters:
defaultMaxPerSecond- default max events per second | 默认每秒最大事件数
-
-
Method Details
-
setLimit
-
allowPublish
Check if publishing is allowed 检查是否允许发布- Parameters:
event- the event to check | 要检查的事件- Returns:
- true if allowed | 如果允许返回true
-
getCurrentCount
-
getDefaultMaxPerSecond
public int getDefaultMaxPerSecond()Get the default max per second 获取默认每秒最大值- Returns:
- default max per second | 默认每秒最大值
-
reset
public void reset()Reset all rate limits 重置所有频率限制 -
reset
-