Class SubscribeRateLimiter


  • public class SubscribeRateLimiter
    extends java.lang.Object
    • Constructor Detail

      • SubscribeRateLimiter

        public SubscribeRateLimiter​(PersistentTopic topic)
    • Method Detail

      • getAvailableSubscribeRateLimit

        public long getAvailableSubscribeRateLimit​(SubscribeRateLimiter.ConsumerIdentifier consumerIdentifier)
        returns available subscribes if subscribe-throttling is enabled else it returns -1.
        Returns:
      • tryAcquire

        public boolean tryAcquire​(SubscribeRateLimiter.ConsumerIdentifier consumerIdentifier)
        It acquires subscribe from subscribe-limiter and returns if acquired permits succeed.
        Returns:
      • subscribeAvailable

        public boolean subscribeAvailable​(SubscribeRateLimiter.ConsumerIdentifier consumerIdentifier)
        checks if subscribe-rate limit is configured and if it's configured then check if subscribe are available or not.
        Returns:
      • onPoliciesUpdate

        public void onPoliciesUpdate​(org.apache.pulsar.common.policies.data.Policies data)
      • onSubscribeRateUpdate

        public void onSubscribeRateUpdate​(org.apache.pulsar.common.policies.data.SubscribeRate subscribeRate)
      • getPoliciesSubscribeRate

        public org.apache.pulsar.common.policies.data.SubscribeRate getPoliciesSubscribeRate()
        Gets configured subscribe-rate from namespace policies. Returns null if subscribe-rate is not configured
        Returns:
      • isDispatchRateNeeded

        public static boolean isDispatchRateNeeded​(BrokerService brokerService,
                                                   java.util.Optional<org.apache.pulsar.common.policies.data.Policies> policies,
                                                   java.lang.String topicName)
      • getPoliciesSubscribeRate

        public static org.apache.pulsar.common.policies.data.SubscribeRate getPoliciesSubscribeRate​(BrokerService brokerService,
                                                                                                    java.lang.String topicName)
      • getPoliciesSubscribeRate

        public static org.apache.pulsar.common.policies.data.SubscribeRate getPoliciesSubscribeRate​(java.lang.String cluster,
                                                                                                    java.util.Optional<org.apache.pulsar.common.policies.data.Policies> policies,
                                                                                                    java.lang.String topicName)
      • getSubscribeRatePerConsumer

        public long getSubscribeRatePerConsumer​(SubscribeRateLimiter.ConsumerIdentifier consumerIdentifier)
        Get configured msg subscribe-throttling rate. Returns -1 if not configured
        Returns:
      • close

        public void close()
      • getSubscribeRate

        public org.apache.pulsar.common.policies.data.SubscribeRate getSubscribeRate()