public class PrecisPublishLimiter extends Object implements PublishRateLimiter
| Modifier and Type | Field and Description |
|---|---|
protected long |
publishMaxByteRate |
protected int |
publishMaxMessageRate |
DISABLED_RATE_LIMITER| Constructor and Description |
|---|
PrecisPublishLimiter(org.apache.pulsar.common.policies.data.Policies policies,
String clusterName,
org.apache.pulsar.common.util.RateLimitFunction rateLimitFunction) |
PrecisPublishLimiter(org.apache.pulsar.common.policies.data.PublishRate publishRate,
org.apache.pulsar.common.util.RateLimitFunction rateLimitFunction) |
PrecisPublishLimiter(org.apache.pulsar.common.policies.data.PublishRate publishRate,
org.apache.pulsar.common.util.RateLimitFunction rateLimitFunction,
ScheduledExecutorService scheduledExecutorService) |
| 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 |
close()
Close the limiter.
|
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
public PrecisPublishLimiter(org.apache.pulsar.common.policies.data.Policies policies,
String clusterName,
org.apache.pulsar.common.util.RateLimitFunction rateLimitFunction)
public PrecisPublishLimiter(org.apache.pulsar.common.policies.data.PublishRate publishRate,
org.apache.pulsar.common.util.RateLimitFunction rateLimitFunction)
public PrecisPublishLimiter(org.apache.pulsar.common.policies.data.PublishRate publishRate,
org.apache.pulsar.common.util.RateLimitFunction rateLimitFunction,
ScheduledExecutorService scheduledExecutorService)
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 PublishRateLimiterpublic void close()
PublishRateLimiterclose in interface AutoCloseableclose in interface PublishRateLimiterCopyright © 2017–2022 Apache Software Foundation. All rights reserved.