public abstract class AbstractTopic extends Object implements Topic
Topic.PublishContext| Constructor and Description |
|---|
AbstractTopic(String topic,
BrokerService brokerService) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addConsumerToSubscription(Subscription subscription,
Consumer consumer) |
CompletableFuture<org.apache.pulsar.common.protocol.schema.SchemaVersion> |
addSchema(org.apache.pulsar.common.protocol.schema.SchemaData schema)
Add a schema to the topic.
|
CompletableFuture<Void> |
checkSchemaCompatibleForConsumer(org.apache.pulsar.common.protocol.schema.SchemaData schema)
Check if schema is compatible with current topic schema.
|
protected void |
checkTopicFenced() |
void |
checkTopicPublishThrottlingRate() |
boolean |
deletePartitionedTopicMetadataWhileInactive() |
CompletableFuture<org.apache.pulsar.common.protocol.schema.SchemaVersion> |
deleteSchema()
Delete the schema if this topic has a schema defined for it.
|
void |
disableCnxAutoRead() |
protected void |
disableProducerRead() |
void |
enableCnxAutoRead() |
protected void |
enableProducerReadForPublishBufferLimiting() |
protected void |
enableProducerReadForPublishRateLimiting()
it sets cnx auto-readable if producer's cnx is disabled due to publish-throttling
|
PublishRateLimiter |
getBrokerPublishRateLimiter() |
BrokerService |
getBrokerService() |
long |
getBytesInCounter() |
long |
getBytesOutCounter() |
org.apache.pulsar.common.policies.data.InactiveTopicPolicies |
getInactiveTopicPolicies() |
long |
getMsgInCounter() |
long |
getMsgOutCounter() |
String |
getName() |
abstract int |
getNumberOfConsumers() |
Map<String,Producer> |
getProducers() |
String |
getReplicatorPrefix() |
boolean |
getSchemaValidationEnforced() |
org.apache.pulsar.common.policies.data.TopicPolicies |
getTopicPolicies(org.apache.pulsar.common.naming.TopicName topicName)
Get
TopicPolicies for this topic. |
PublishRateLimiter |
getTopicPublishRateLimiter() |
protected abstract void |
handleProducerRemoved(Producer producer) |
protected boolean |
hasLocalProducers() |
CompletableFuture<Boolean> |
hasSchema()
Whether a topic has had a schema defined for it.
|
void |
incrementPublishCount(int numOfMessages,
long msgSizeInBytes) |
protected void |
internalAddProducer(Producer producer) |
boolean |
isBrokerPublishRateExceeded() |
protected boolean |
isConsumersExceededOnTopic() |
boolean |
isDeleteWhileInactive() |
boolean |
isEncryptionRequired() |
protected boolean |
isExceedMaximumMessageSize(int size) |
protected boolean |
isProducersExceeded() |
boolean |
isPublishRateExceeded() |
boolean |
isTopicPublishRateExceeded(int numberMessages,
int bytes) |
void |
markBatchMessagePublished() |
void |
recordAddLatency(long latency,
TimeUnit unit)
record add-latency
|
void |
resetBrokerPublishCountAndEnableReadIfRequired(boolean doneBrokerReset) |
void |
resetInactiveTopicPolicies(org.apache.pulsar.common.policies.data.InactiveTopicDeleteMode inactiveTopicDeleteMode,
int maxInactiveDurationSeconds,
boolean deleteWhileInactive) |
void |
resetTopicPublishCountAndEnableReadIfRequired() |
void |
setDeleteWhileInactive(boolean deleteWhileInactive) |
protected void |
setSchemaCompatibilityStrategy(org.apache.pulsar.common.policies.data.Policies policies) |
String |
toString() |
void |
updateMaxPublishRate(org.apache.pulsar.common.policies.data.Policies policies) |
protected void |
updatePublishDispatcher(org.apache.pulsar.common.policies.data.PublishRate publishRate)
update topic publish dispatcher for this topic.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddProducer, addSchemaIfIdleOrCheckCompatible, checkBackloggedCursors, checkDeduplicationSnapshot, checkGC, checkInactiveSubscriptions, checkMessageDeduplicationInfo, checkMessageExpiry, checkReplication, close, createSubscription, delete, deleteForcefully, endTxn, getBacklogQuota, getDispatchRateLimiter, getInternalStats, getLastMessageId, getLastPosition, getReplicators, getStats, getSubscription, getSubscriptions, getTransactionBuffer, isBacklogQuotaExceeded, isReplicated, isSystemTopic, onPoliciesUpdate, publishMessage, publishTxnMessage, removeProducer, subscribe, unsubscribe, updateRatesprotected static final long POLICY_UPDATE_FAILURE_RETRY_TIME_SECONDS
protected final String topic
protected final ConcurrentHashMap<String,Producer> producers
protected final BrokerService brokerService
protected final String replicatorPrefix
protected final ReentrantReadWriteLock lock
protected volatile boolean isFenced
protected org.apache.pulsar.common.policies.data.InactiveTopicPolicies inactiveTopicPolicies
protected volatile long lastActive
protected volatile boolean hasBatchMessagePublished
protected StatsBuckets addEntryLatencyStatsUsec
protected volatile boolean isEncryptionRequired
protected volatile org.apache.pulsar.common.policies.data.SchemaCompatibilityStrategy schemaCompatibilityStrategy
protected volatile boolean isAllowAutoUpdateSchema
protected volatile boolean schemaValidationEnforced
protected volatile int maxUnackedMessagesOnConsumer
protected volatile Integer maxSubscriptionsPerTopic
protected volatile PublishRateLimiter topicPublishRateLimiter
protected boolean preciseTopicPublishRateLimitingEnable
protected CompletableFuture<TransactionBuffer> transactionBuffer
protected ReentrantLock transactionBufferLock
public AbstractTopic(String topic, BrokerService brokerService)
protected boolean isProducersExceeded()
protected boolean isConsumersExceededOnTopic()
public abstract int getNumberOfConsumers()
protected void addConsumerToSubscription(Subscription subscription, Consumer consumer) throws BrokerServiceException
BrokerServiceExceptionpublic void disableCnxAutoRead()
disableCnxAutoRead in interface Topicpublic void enableCnxAutoRead()
enableCnxAutoRead in interface Topicprotected boolean hasLocalProducers()
public Map<String,Producer> getProducers()
getProducers in interface Topicpublic BrokerService getBrokerService()
public boolean isEncryptionRequired()
isEncryptionRequired in interface Topicpublic boolean getSchemaValidationEnforced()
getSchemaValidationEnforced in interface Topicpublic void markBatchMessagePublished()
public String getReplicatorPrefix()
public CompletableFuture<Boolean> hasSchema()
Topicpublic CompletableFuture<org.apache.pulsar.common.protocol.schema.SchemaVersion> addSchema(org.apache.pulsar.common.protocol.schema.SchemaData schema)
Topicpublic CompletableFuture<org.apache.pulsar.common.protocol.schema.SchemaVersion> deleteSchema()
TopicdeleteSchema in interface Topicpublic CompletableFuture<Void> checkSchemaCompatibleForConsumer(org.apache.pulsar.common.protocol.schema.SchemaData schema)
TopiccheckSchemaCompatibleForConsumer in interface Topicpublic void recordAddLatency(long latency,
TimeUnit unit)
TopicrecordAddLatency in interface Topicprotected void setSchemaCompatibilityStrategy(org.apache.pulsar.common.policies.data.Policies policies)
public void checkTopicPublishThrottlingRate()
checkTopicPublishThrottlingRate in interface Topicpublic void incrementPublishCount(int numOfMessages,
long msgSizeInBytes)
incrementPublishCount in interface Topicpublic void resetTopicPublishCountAndEnableReadIfRequired()
resetTopicPublishCountAndEnableReadIfRequired in interface Topicpublic void resetBrokerPublishCountAndEnableReadIfRequired(boolean doneBrokerReset)
resetBrokerPublishCountAndEnableReadIfRequired in interface Topicprotected void enableProducerReadForPublishRateLimiting()
protected void enableProducerReadForPublishBufferLimiting()
protected void disableProducerRead()
protected void checkTopicFenced()
throws BrokerServiceException
BrokerServiceExceptionprotected void internalAddProducer(Producer producer) throws BrokerServiceException
BrokerServiceExceptionprotected abstract void handleProducerRemoved(Producer producer)
public boolean isPublishRateExceeded()
isPublishRateExceeded in interface Topicpublic boolean isTopicPublishRateExceeded(int numberMessages,
int bytes)
isTopicPublishRateExceeded in interface Topicpublic boolean isBrokerPublishRateExceeded()
isBrokerPublishRateExceeded in interface Topicpublic PublishRateLimiter getTopicPublishRateLimiter()
public PublishRateLimiter getBrokerPublishRateLimiter()
public void updateMaxPublishRate(org.apache.pulsar.common.policies.data.Policies policies)
public long getMsgInCounter()
public long getBytesInCounter()
public long getMsgOutCounter()
public long getBytesOutCounter()
public boolean isDeleteWhileInactive()
public boolean deletePartitionedTopicMetadataWhileInactive()
public void setDeleteWhileInactive(boolean deleteWhileInactive)
public org.apache.pulsar.common.policies.data.InactiveTopicPolicies getInactiveTopicPolicies()
public void resetInactiveTopicPolicies(org.apache.pulsar.common.policies.data.InactiveTopicDeleteMode inactiveTopicDeleteMode,
int maxInactiveDurationSeconds,
boolean deleteWhileInactive)
public org.apache.pulsar.common.policies.data.TopicPolicies getTopicPolicies(org.apache.pulsar.common.naming.TopicName topicName)
TopicPolicies for this topic.topicName - protected boolean isExceedMaximumMessageSize(int size)
protected void updatePublishDispatcher(org.apache.pulsar.common.policies.data.PublishRate publishRate)
Copyright © 2017–2021 Apache Software Foundation. All rights reserved.