ratelimitjを用いてapiのストリーム制限を行う
1064 ワード
シーケンス
対外的に発表されたapiは,悪意のある攻撃を防止し,可能な限りシステムを保護するためにフロー制御を行う必要がある.ratelimitjは、redis、hazelcast、inmemoryバージョンに基づく実装スキームを提供する非常に良いオープンソースプロジェクトです.ここではinmemoryバージョンの使用方法を簡単に説明します.
maven
使用
doc ratelimitj-inmemory
対外的に発表されたapiは,悪意のある攻撃を防止し,可能な限りシステムを保護するためにフロー制御を行う必要がある.ratelimitjは、redis、hazelcast、inmemoryバージョンに基づく実装スキームを提供する非常に良いオープンソースプロジェクトです.ここではinmemoryバージョンの使用方法を簡単に説明します.
maven
es.moki.ratelimitj
ratelimitj-core
0.4.0.M1
es.moki.ratelimitj
ratelimitj-inmemory
0.4.0.M1
使用
@Component
public class RateLimitService {
Set rules = Collections.singleton(RequestLimitRule.of(1, TimeUnit.MINUTES, 50)); // 50 request per minute, per key
RequestRateLimiter requestRateLimiter = new InMemorySlidingWindowRequestRateLimiter(rules);
public boolean reached(String key){
return requestRateLimiter.overLimitWhenIncremented(key);
}
}
doc