Class PrecisPublishLimiter

java.lang.Object
org.apache.pulsar.broker.service.PrecisPublishLimiter
All Implemented Interfaces:
AutoCloseable, PublishRateLimiter

public class PrecisPublishLimiter extends Object implements PublishRateLimiter
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected long
     
    protected int
     

    Fields inherited from interface org.apache.pulsar.broker.service.PublishRateLimiter

    DISABLED_RATE_LIMITER
  • Constructor Summary

    Constructors
    Constructor
    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)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    checks and update state of current publish and marks if it has exceeded the rate-limiting threshold.
    void
    Close the limiter.
    void
    incrementPublishCount(int numOfMessages, long msgSizeInBytes)
    increments current publish count.
    boolean
    returns true if current publish has reached the rate-limiting threshold.
    boolean
    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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • publishMaxMessageRate

      protected volatile int publishMaxMessageRate
    • publishMaxByteRate

      protected volatile long publishMaxByteRate
  • Constructor Details

    • PrecisPublishLimiter

      public PrecisPublishLimiter(org.apache.pulsar.common.policies.data.Policies policies, String clusterName, org.apache.pulsar.common.util.RateLimitFunction rateLimitFunction)
    • PrecisPublishLimiter

      public PrecisPublishLimiter(org.apache.pulsar.common.policies.data.PublishRate publishRate, org.apache.pulsar.common.util.RateLimitFunction rateLimitFunction)
    • PrecisPublishLimiter

      public PrecisPublishLimiter(org.apache.pulsar.common.policies.data.PublishRate publishRate, org.apache.pulsar.common.util.RateLimitFunction rateLimitFunction, ScheduledExecutorService scheduledExecutorService)
  • Method Details