Class ResourceGroupPublishLimiter

  • All Implemented Interfaces:
    java.lang.AutoCloseable, PublishRateLimiter, org.apache.pulsar.common.util.RateLimitFunction

    public class ResourceGroupPublishLimiter
    extends java.lang.Object
    implements PublishRateLimiter, org.apache.pulsar.common.util.RateLimitFunction, java.lang.AutoCloseable
    • Field Detail

      • publishMaxMessageRate

        protected volatile long publishMaxMessageRate
      • publishMaxByteRate

        protected volatile long publishMaxByteRate
      • publishThrottlingEnabled

        protected volatile boolean publishThrottlingEnabled
    • Constructor Detail

      • ResourceGroupPublishLimiter

        public ResourceGroupPublishLimiter​(org.apache.pulsar.common.policies.data.ResourceGroup resourceGroup,
                                           java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
    • Method Detail

      • checkPublishRate

        public void checkPublishRate()
        Description copied from interface: PublishRateLimiter
        checks and update state of current publish and marks if it has exceeded the rate-limiting threshold.
        Specified by:
        checkPublishRate in interface PublishRateLimiter
      • update

        public void update​(org.apache.pulsar.common.policies.data.Policies policies,
                           java.lang.String clusterName)
        Description copied from interface: PublishRateLimiter
        updates rate-limiting threshold based on policies.
        Specified by:
        update in interface PublishRateLimiter
      • update

        public void update​(org.apache.pulsar.common.policies.data.PublishRate maxPublishRate)
        Description copied from interface: PublishRateLimiter
        updates rate-limiting threshold based on passed in rate limiter.
        Specified by:
        update in interface PublishRateLimiter
      • update

        public void update​(org.apache.pulsar.common.policies.data.ResourceGroup resourceGroup)
      • update

        public void update​(long publishRateInMsgs,
                           long publishRateInBytes)
      • registerRateLimitFunction

        public void registerRateLimitFunction​(java.lang.String name,
                                              org.apache.pulsar.common.util.RateLimitFunction func)
      • unregisterRateLimitFunction

        public void unregisterRateLimitFunction​(java.lang.String name)
      • close

        public void close()
        Description copied from interface: PublishRateLimiter
        Close the limiter.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface PublishRateLimiter
      • apply

        public void apply()
        Specified by:
        apply in interface org.apache.pulsar.common.util.RateLimitFunction