Class CommandRateLimiter
- java.lang.Object
-
- com.netflix.concurrency.limits.limiter.AbstractLimiter<Intent>
-
- io.camunda.zeebe.broker.transport.backpressure.CommandRateLimiter
-
- All Implemented Interfaces:
com.netflix.concurrency.limits.Limiter<Intent>,RequestLimiter<Intent>
public final class CommandRateLimiter extends com.netflix.concurrency.limits.limiter.AbstractLimiter<Intent> implements RequestLimiter<Intent>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCommandRateLimiter.CommandRateLimiterBuilder
-
Constructor Summary
Constructors Modifier Constructor Description protectedCommandRateLimiter(CommandRateLimiter.CommandRateLimiterBuilder builder, int partitionId)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Optional<com.netflix.concurrency.limits.Limiter.Listener>acquire(Intent intent)static CommandRateLimiter.CommandRateLimiterBuilderbuilder()intgetInflightCount()voidonIgnore(int streamId, long requestId)Notify when a request is cancelled afterRequestLimiter.tryAcquire(int, long, Object)was success.protected voidonNewLimit(int newLimit)voidonResponse(int streamId, long requestId)Notify when a request processing is completed by calling this method.booleantryAcquire(int streamId, long requestId, Intent context)Try to add to the inflight requests.-
Methods inherited from class com.netflix.concurrency.limits.limiter.AbstractLimiter
createListener, createRejectedListener, getInflight, getLimit
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.camunda.zeebe.broker.transport.backpressure.RequestLimiter
getLimit
-
-
-
-
Constructor Detail
-
CommandRateLimiter
protected CommandRateLimiter(CommandRateLimiter.CommandRateLimiterBuilder builder, int partitionId)
-
-
Method Detail
-
acquire
public Optional<com.netflix.concurrency.limits.Limiter.Listener> acquire(Intent intent)
- Specified by:
acquirein interfacecom.netflix.concurrency.limits.Limiter<Intent>
-
tryAcquire
public boolean tryAcquire(int streamId, long requestId, Intent context)Description copied from interface:RequestLimiterTry to add to the inflight requests. If success,RequestLimiter.onResponse(int, long)()} must be called when the request * is processed.- Specified by:
tryAcquirein interfaceRequestLimiter<Intent>context- some limiters may use additional context to decide if a request should be accepted- Returns:
- true if request is added to the inflight requests, false otherwise
-
onResponse
public void onResponse(int streamId, long requestId)Description copied from interface:RequestLimiterNotify when a request processing is completed by calling this method.- Specified by:
onResponsein interfaceRequestLimiter<Intent>
-
onIgnore
public void onIgnore(int streamId, long requestId)Description copied from interface:RequestLimiterNotify when a request is cancelled afterRequestLimiter.tryAcquire(int, long, Object)was success.- Specified by:
onIgnorein interfaceRequestLimiter<Intent>
-
getInflightCount
public int getInflightCount()
- Specified by:
getInflightCountin interfaceRequestLimiter<Intent>
-
onNewLimit
protected void onNewLimit(int newLimit)
- Overrides:
onNewLimitin classcom.netflix.concurrency.limits.limiter.AbstractLimiter<Intent>
-
builder
public static CommandRateLimiter.CommandRateLimiterBuilder builder()
-
-