public class DispatchRateLimiter extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
DispatchRateLimiter.Type |
| Constructor and Description |
|---|
DispatchRateLimiter(PersistentTopic topic,
DispatchRateLimiter.Type type) |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
long |
getAvailableDispatchRateLimitOnMsg()
returns available msg-permit if msg-dispatch-throttling is enabled else it returns -1
|
long |
getDispatchRateOnByte()
Get configured byte dispatch-throttling rate.
|
long |
getDispatchRateOnMsg()
Get configured msg dispatch-throttling rate.
|
static Optional<org.apache.pulsar.common.policies.data.Policies> |
getPolicies(BrokerService brokerService,
String topicName) |
org.apache.pulsar.common.policies.data.DispatchRate |
getPoliciesDispatchRate(BrokerService brokerService)
Gets configured dispatch-rate from namespace policies.
|
static org.apache.pulsar.common.policies.data.DispatchRate |
getPoliciesDispatchRate(String cluster,
Optional<org.apache.pulsar.common.policies.data.Policies> policies,
DispatchRateLimiter.Type type) |
static Optional<org.apache.pulsar.common.policies.data.DispatchRate> |
getTopicPolicyDispatchRate(BrokerService brokerService,
String topicName,
DispatchRateLimiter.Type type) |
boolean |
hasMessageDispatchPermit()
checks if dispatch-rate limit is configured and if it's configured then check if permits are available or not.
|
boolean |
isDispatchRateLimitingEnabled()
Checks if dispatch-rate limiting is enabled.
|
static boolean |
isDispatchRateNeeded(BrokerService brokerService,
Optional<org.apache.pulsar.common.policies.data.Policies> policies,
String topicName,
DispatchRateLimiter.Type type) |
static boolean |
isDispatchRateNeeded(ServiceConfiguration serviceConfig,
Optional<org.apache.pulsar.common.policies.data.Policies> policies,
String topicName,
DispatchRateLimiter.Type type) |
void |
onPoliciesUpdate(org.apache.pulsar.common.policies.data.Policies data) |
boolean |
tryDispatchPermit(long msgPermits,
long bytePermits)
It acquires msg and bytes permits from rate-limiter and returns if acquired permits succeed.
|
void |
updateDispatchRate()
Update dispatch-throttling-rate.
|
void |
updateDispatchRate(org.apache.pulsar.common.policies.data.DispatchRate dispatchRate)
Update dispatch rate by updating msg and byte rate-limiter.
|
public DispatchRateLimiter(PersistentTopic topic, DispatchRateLimiter.Type type)
public long getAvailableDispatchRateLimitOnMsg()
public boolean tryDispatchPermit(long msgPermits,
long bytePermits)
msgPermits - bytePermits - public boolean hasMessageDispatchPermit()
public boolean isDispatchRateLimitingEnabled()
public void updateDispatchRate()
public static boolean isDispatchRateNeeded(BrokerService brokerService, Optional<org.apache.pulsar.common.policies.data.Policies> policies, String topicName, DispatchRateLimiter.Type type)
public static Optional<org.apache.pulsar.common.policies.data.DispatchRate> getTopicPolicyDispatchRate(BrokerService brokerService, String topicName, DispatchRateLimiter.Type type)
public static boolean isDispatchRateNeeded(ServiceConfiguration serviceConfig, Optional<org.apache.pulsar.common.policies.data.Policies> policies, String topicName, DispatchRateLimiter.Type type)
public void onPoliciesUpdate(org.apache.pulsar.common.policies.data.Policies data)
public static org.apache.pulsar.common.policies.data.DispatchRate getPoliciesDispatchRate(String cluster, Optional<org.apache.pulsar.common.policies.data.Policies> policies, DispatchRateLimiter.Type type)
public org.apache.pulsar.common.policies.data.DispatchRate getPoliciesDispatchRate(BrokerService brokerService)
public static Optional<org.apache.pulsar.common.policies.data.Policies> getPolicies(BrokerService brokerService, String topicName)
public void updateDispatchRate(org.apache.pulsar.common.policies.data.DispatchRate dispatchRate)
dispatchRate - public long getDispatchRateOnMsg()
public long getDispatchRateOnByte()
public void close()
Copyright © 2017–2021 Apache Software Foundation. All rights reserved.