public class PublishRateLimiterImpl extends Object implements PublishRateLimiter
| Modifier and Type | Field and Description |
|---|---|
protected LongAdder |
currentPublishByteCount |
protected LongAdder |
currentPublishMsgCount |
protected long |
publishMaxByteRate |
protected int |
publishMaxMessageRate |
protected boolean |
publishRateExceeded |
protected boolean |
publishThrottlingEnabled |
DISABLED_RATE_LIMITER| Constructor and Description |
|---|
PublishRateLimiterImpl(org.apache.pulsar.common.policies.data.Policies policies,
String clusterName) |
PublishRateLimiterImpl(org.apache.pulsar.common.policies.data.PublishRate maxPublishRate) |
| Modifier and Type | Method and Description |
|---|---|
void |
checkPublishRate()
checks and update state of current publish and marks if it has exceeded the rate-limiting threshold.
|
void |
incrementPublishCount(int numOfMessages,
long msgSizeInBytes)
increments current publish count.
|
boolean |
isPublishRateExceeded()
returns true if current publish has reached the rate-limiting threshold.
|
boolean |
resetPublishCount()
reset current publish count.
|
boolean |
tryAcquire(int numbers,
long bytes)
try to acquire permit
|
void |
update(org.apache.pulsar.common.policies.data.Policies policies,
String clusterName)
updates rate-limiting threshold based on policies.
|
void |
update(org.apache.pulsar.common.policies.data.PublishRate maxPublishRate)
updates rate-limiting threshold based on passed in rate limiter.
|
protected volatile int publishMaxMessageRate
protected volatile long publishMaxByteRate
protected volatile boolean publishThrottlingEnabled
protected volatile boolean publishRateExceeded
protected volatile LongAdder currentPublishMsgCount
protected volatile LongAdder currentPublishByteCount
public PublishRateLimiterImpl(org.apache.pulsar.common.policies.data.Policies policies,
String clusterName)
public PublishRateLimiterImpl(org.apache.pulsar.common.policies.data.PublishRate maxPublishRate)
public void checkPublishRate()
PublishRateLimitercheckPublishRate in interface PublishRateLimiterpublic void incrementPublishCount(int numOfMessages,
long msgSizeInBytes)
PublishRateLimiterincrementPublishCount in interface PublishRateLimiterpublic boolean resetPublishCount()
PublishRateLimiterresetPublishCount in interface PublishRateLimiterpublic boolean isPublishRateExceeded()
PublishRateLimiterisPublishRateExceeded in interface PublishRateLimiterpublic void update(org.apache.pulsar.common.policies.data.Policies policies,
String clusterName)
PublishRateLimiterupdate in interface PublishRateLimiterpublic void update(org.apache.pulsar.common.policies.data.PublishRate maxPublishRate)
PublishRateLimiterupdate in interface PublishRateLimiterpublic boolean tryAcquire(int numbers,
long bytes)
PublishRateLimitertryAcquire in interface PublishRateLimiterCopyright © 2017–2021 Apache Software Foundation. All rights reserved.