public class PersistentSubscription extends AbstractSubscription implements Subscription
| Modifier and Type | Field and Description |
|---|---|
protected ManagedCursor |
cursor |
protected Dispatcher |
dispatcher |
protected String |
fullName |
protected String |
subName |
protected PersistentTopic |
topic |
protected String |
topicName |
bytesOutFromRemovedConsumers, msgOutFromRemovedConsumer| Constructor and Description |
|---|
PersistentSubscription(PersistentTopic topic,
String subscriptionName,
ManagedCursor cursor,
boolean replicated) |
| Modifier and Type | Method and Description |
|---|---|
void |
acknowledgeMessage(List<Position> positions,
org.apache.pulsar.common.api.proto.CommandAck.AckType ackType,
Map<String,Long> properties) |
CompletableFuture<Void> |
addConsumer(Consumer consumer) |
void |
addUnAckedMessages(int unAckMessages) |
boolean |
checkAndUnblockIfStuck() |
boolean |
checkIfPendingAckStoreInit() |
boolean |
checkIsCanDeleteConsumerPendingAck(PositionImpl position) |
CompletableFuture<Void> |
clearBacklog() |
CompletableFuture<Void> |
close()
Close the cursor ledger for this subscription.
|
void |
consumerFlow(Consumer consumer,
int additionalNumberOfMessages) |
void |
deactivateCursor() |
CompletableFuture<Void> |
delete()
Delete the subscription by closing and deleting its managed cursor if no consumers are connected to it.
|
CompletableFuture<Void> |
deleteForcefully()
Forcefully close all consumers and deletes the subscription.
|
CompletableFuture<Void> |
disconnect()
Disconnect all consumers attached to the dispatcher and close this subscription.
|
CompletableFuture<Void> |
doUnsubscribe(Consumer consumer)
Handle unsubscribe command from the client API Check with the dispatcher is this consumer can proceed with
unsubscribe.
|
CompletableFuture<Void> |
endTxn(long txnidMostBits,
long txnidLeastBits,
int txnAction,
long lowWaterMark) |
long |
estimateBacklogSize() |
boolean |
expireMessages(int messageTTLInSeconds) |
boolean |
expireMessages(Position position) |
List<Consumer> |
getConsumers() |
ManagedCursor |
getCursor() |
Dispatcher |
getDispatcher() |
double |
getExpiredMessageRate() |
PersistentMessageExpiryMonitor |
getExpiryMonitor() |
String |
getName() |
long |
getNumberOfEntriesDelayed() |
long |
getNumberOfEntriesInBacklog(boolean getPreciseBacklog) |
long |
getNumberOfEntriesSinceFirstNotAckedMessage() |
CompletableFuture<ManagedLedger> |
getPendingAckManageLedger() |
org.apache.pulsar.common.policies.data.stats.SubscriptionStatsImpl |
getStats(Boolean getPreciseBacklog,
boolean subscriptionBacklogSize) |
Topic |
getTopic() |
String |
getTopicName() |
int |
getTotalNonContiguousDeletedMessagesRange() |
org.apache.pulsar.common.policies.data.TransactionInPendingAckStats |
getTransactionInPendingAckStats(org.apache.pulsar.client.api.transaction.TxnID txnID) |
org.apache.pulsar.common.policies.data.TransactionPendingAckStats |
getTransactionPendingAckStats() |
org.apache.pulsar.common.api.proto.CommandSubscribe.SubType |
getType() |
String |
getTypeString() |
BrokerInterceptor |
interceptor() |
boolean |
isReplicated() |
void |
markTopicWithBatchMessagePublished() |
protected Map<String,Long> |
mergeCursorProperties(Map<String,Long> userProperties)
Return a merged map that contains the cursor properties specified by used
(eg.
|
CompletableFuture<Entry> |
peekNthMessage(int messagePosition) |
void |
processReplicatedSubscriptionSnapshot(org.apache.pulsar.common.api.proto.ReplicatedSubscriptionsSnapshot snapshot) |
void |
redeliverUnacknowledgedMessages(Consumer consumer) |
void |
redeliverUnacknowledgedMessages(Consumer consumer,
List<PositionImpl> positions) |
void |
removeConsumer(Consumer consumer,
boolean isResetCursor) |
CompletableFuture<Void> |
resetCursor(long timestamp) |
CompletableFuture<Void> |
resetCursor(Position position) |
boolean |
setReplicated(boolean replicated) |
CompletableFuture<Void> |
skipMessages(int numMessagesToSkip) |
void |
syncBatchPositionBitSetForPendingAck(PositionImpl position) |
String |
toString() |
CompletableFuture<Void> |
transactionCumulativeAcknowledge(org.apache.pulsar.client.api.transaction.TxnID txnId,
List<PositionImpl> positions) |
CompletableFuture<Void> |
transactionIndividualAcknowledge(org.apache.pulsar.client.api.transaction.TxnID txnId,
List<org.apache.commons.lang3.tuple.MutablePair<PositionImpl,Integer>> positions) |
void |
updateLastMarkDeleteAdvancedTimestamp() |
getBytesOutCounter, getMsgOutCounterclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetNumberOfSameAddressConsumers, isCumulativeAckMode, isIndividualAckMode, removeConsumerprotected final PersistentTopic topic
protected final ManagedCursor cursor
protected volatile Dispatcher dispatcher
protected final String topicName
protected final String subName
protected final String fullName
public PersistentSubscription(PersistentTopic topic, String subscriptionName, ManagedCursor cursor, boolean replicated)
public void updateLastMarkDeleteAdvancedTimestamp()
public BrokerInterceptor interceptor()
interceptor in interface Subscriptionpublic String getName()
getName in interface Subscriptionpublic Topic getTopic()
getTopic in interface Subscriptionpublic boolean isReplicated()
isReplicated in interface Subscriptionpublic boolean setReplicated(boolean replicated)
public CompletableFuture<Void> addConsumer(Consumer consumer)
addConsumer in interface Subscriptionpublic void removeConsumer(Consumer consumer, boolean isResetCursor) throws BrokerServiceException
removeConsumer in interface SubscriptionBrokerServiceExceptionpublic void deactivateCursor()
public void consumerFlow(Consumer consumer, int additionalNumberOfMessages)
consumerFlow in interface Subscriptionpublic void acknowledgeMessage(List<Position> positions, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, Map<String,Long> properties)
acknowledgeMessage in interface Subscriptionpublic CompletableFuture<Void> transactionIndividualAcknowledge(org.apache.pulsar.client.api.transaction.TxnID txnId, List<org.apache.commons.lang3.tuple.MutablePair<PositionImpl,Integer>> positions)
public CompletableFuture<Void> transactionCumulativeAcknowledge(org.apache.pulsar.client.api.transaction.TxnID txnId, List<PositionImpl> positions)
public String getTopicName()
getTopicName in interface Subscriptionpublic org.apache.pulsar.common.api.proto.CommandSubscribe.SubType getType()
getType in interface Subscriptionpublic String getTypeString()
getTypeString in interface Subscriptionpublic CompletableFuture<Void> clearBacklog()
clearBacklog in interface Subscriptionpublic CompletableFuture<Void> skipMessages(int numMessagesToSkip)
skipMessages in interface Subscriptionpublic CompletableFuture<Void> resetCursor(long timestamp)
resetCursor in interface Subscriptionpublic CompletableFuture<Void> resetCursor(Position position)
resetCursor in interface Subscriptionpublic CompletableFuture<Entry> peekNthMessage(int messagePosition)
peekNthMessage in interface Subscriptionpublic long getNumberOfEntriesInBacklog(boolean getPreciseBacklog)
getNumberOfEntriesInBacklog in interface Subscriptionpublic Dispatcher getDispatcher()
getDispatcher in interface Subscriptionpublic long getNumberOfEntriesSinceFirstNotAckedMessage()
public int getTotalNonContiguousDeletedMessagesRange()
public CompletableFuture<Void> close()
close in interface Subscriptionpublic CompletableFuture<Void> disconnect()
disconnect in interface Subscriptionpublic CompletableFuture<Void> delete()
delete in interface Subscriptionpublic CompletableFuture<Void> deleteForcefully()
deleteForcefully in interface Subscriptionpublic CompletableFuture<Void> doUnsubscribe(Consumer consumer)
doUnsubscribe in interface Subscriptionconsumer - consumer object that is initiating the unsubscribe operationpublic List<Consumer> getConsumers()
getConsumers in interface Subscriptionpublic boolean expireMessages(int messageTTLInSeconds)
expireMessages in interface Subscriptionpublic boolean expireMessages(Position position)
expireMessages in interface Subscriptionpublic double getExpiredMessageRate()
getExpiredMessageRate in interface Subscriptionpublic PersistentMessageExpiryMonitor getExpiryMonitor()
public long estimateBacklogSize()
public org.apache.pulsar.common.policies.data.stats.SubscriptionStatsImpl getStats(Boolean getPreciseBacklog, boolean subscriptionBacklogSize)
public void redeliverUnacknowledgedMessages(Consumer consumer)
redeliverUnacknowledgedMessages in interface Subscriptionpublic void redeliverUnacknowledgedMessages(Consumer consumer, List<PositionImpl> positions)
redeliverUnacknowledgedMessages in interface Subscriptionpublic void addUnAckedMessages(int unAckMessages)
addUnAckedMessages in interface Subscriptionpublic long getNumberOfEntriesDelayed()
getNumberOfEntriesDelayed in interface Subscriptionpublic void markTopicWithBatchMessagePublished()
markTopicWithBatchMessagePublished in interface Subscriptionprotected Map<String,Long> mergeCursorProperties(Map<String,Long> userProperties)
public void processReplicatedSubscriptionSnapshot(org.apache.pulsar.common.api.proto.ReplicatedSubscriptionsSnapshot snapshot)
processReplicatedSubscriptionSnapshot in interface Subscriptionpublic CompletableFuture<Void> endTxn(long txnidMostBits, long txnidLeastBits, int txnAction, long lowWaterMark)
endTxn in interface Subscriptionpublic ManagedCursor getCursor()
public void syncBatchPositionBitSetForPendingAck(PositionImpl position)
public boolean checkIsCanDeleteConsumerPendingAck(PositionImpl position)
public org.apache.pulsar.common.policies.data.TransactionPendingAckStats getTransactionPendingAckStats()
public boolean checkAndUnblockIfStuck()
public org.apache.pulsar.common.policies.data.TransactionInPendingAckStats getTransactionInPendingAckStats(org.apache.pulsar.client.api.transaction.TxnID txnID)
public CompletableFuture<ManagedLedger> getPendingAckManageLedger()
public boolean checkIfPendingAckStoreInit()
Copyright © 2017–2022 Apache Software Foundation. All rights reserved.