Class SubscribeRateLimiter
- java.lang.Object
-
- org.apache.pulsar.broker.service.persistent.SubscribeRateLimiter
-
public class SubscribeRateLimiter extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSubscribeRateLimiter.ConsumerIdentifier
-
Constructor Summary
Constructors Constructor Description SubscribeRateLimiter(PersistentTopic topic)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()longgetAvailableSubscribeRateLimit(SubscribeRateLimiter.ConsumerIdentifier consumerIdentifier)returns available subscribes if subscribe-throttling is enabled else it returns -1.org.apache.pulsar.common.policies.data.SubscribeRategetPoliciesSubscribeRate()Gets configured subscribe-rate from namespace policies.static org.apache.pulsar.common.policies.data.SubscribeRategetPoliciesSubscribeRate(java.lang.String cluster, java.util.Optional<org.apache.pulsar.common.policies.data.Policies> policies, java.lang.String topicName)static org.apache.pulsar.common.policies.data.SubscribeRategetPoliciesSubscribeRate(BrokerService brokerService, java.lang.String topicName)org.apache.pulsar.common.policies.data.SubscribeRategetSubscribeRate()longgetSubscribeRatePerConsumer(SubscribeRateLimiter.ConsumerIdentifier consumerIdentifier)Get configured msg subscribe-throttling rate.static booleanisSubscribeRateEnabled(org.apache.pulsar.common.policies.data.SubscribeRate subscribeRate)voidonSubscribeRateUpdate(org.apache.pulsar.common.policies.data.SubscribeRate subscribeRate)booleansubscribeAvailable(SubscribeRateLimiter.ConsumerIdentifier consumerIdentifier)checks if subscribe-rate limit is configured and if it's configured then check if subscribe are available or not.booleantryAcquire(SubscribeRateLimiter.ConsumerIdentifier consumerIdentifier)It acquires subscribe from subscribe-limiter and returns if acquired permits succeed.
-
-
-
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:
-
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:
-
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:
-
isSubscribeRateEnabled
public static boolean isSubscribeRateEnabled(org.apache.pulsar.common.policies.data.SubscribeRate subscribeRate)
-
close
public void close()
-
getSubscribeRate
public org.apache.pulsar.common.policies.data.SubscribeRate getSubscribeRate()
-
-