ozonosfer
Intelligent scalable rate limiter
1. Requirements
For ozonosfer-spring JDK 1.8 or newer is required.
2. Usage
@RateLimit(prefix = "app:method", key = "#request.authenticationId", windowSize = MINUTE, limit = 10)
public void rateLimitedMethod(SampleRequest request) {
System.out.println("rate limited method executed!");
}
3. CONFIG
ozonosfer:
toggling: white-list
3.1 Toggling
Ozonosfer use redis sets for toggling rate limiting. The redis key is ozon-list. You can add keys to list with redis-cli SADD ozon-list "132". Default value is white-list.
white-list ozonosfer only limits the keys in the list.
black-list ozonosfer limits every request except key in the list.
4. Options
prefix- the prefix of identifier to limit against (retrieved from method parameter)key- the identifier to limit against (retrieved from method parameter)windowSize- the size of a window. Can be SECOND, MINUTE or HOUR.limit- maximum number of requests in the given window size.
Note: key expression supports fields inside nested objects ("#request.user.id")