Class NonPersistentSubscription
- java.lang.Object
-
- org.apache.pulsar.broker.service.AbstractSubscription
-
- org.apache.pulsar.broker.service.nonpersistent.NonPersistentSubscription
-
- All Implemented Interfaces:
Subscription
public class NonPersistentSubscription extends AbstractSubscription implements Subscription
-
-
Field Summary
-
Fields inherited from class org.apache.pulsar.broker.service.AbstractSubscription
bytesOutFromRemovedConsumers, msgOutFromRemovedConsumer
-
-
Constructor Summary
Constructors Constructor Description NonPersistentSubscription(NonPersistentTopic topic, java.lang.String subscriptionName, boolean isDurable)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidacknowledgeMessage(java.util.List<org.apache.bookkeeper.mledger.Position> position, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties)java.util.concurrent.CompletableFuture<java.lang.Void>addConsumer(Consumer consumer)voidaddUnAckedMessages(int unAckMessages)java.util.concurrent.CompletableFuture<java.lang.Void>clearBacklog()java.util.concurrent.CompletableFuture<java.lang.Void>close()voidconsumerFlow(Consumer consumer, int additionalNumberOfMessages)java.util.concurrent.CompletableFuture<java.lang.Void>delete()Delete the subscription by closing and deleting its managed cursor if no consumers are connected to it.java.util.concurrent.CompletableFuture<java.lang.Void>deleteForcefully()Forcefully close all consumers and deletes the subscription.java.util.concurrent.CompletableFuture<java.lang.Void>disconnect()Disconnect all consumers attached to the dispatcher and close this subscription.java.util.concurrent.CompletableFuture<java.lang.Void>doUnsubscribe(Consumer consumer)Handle unsubscribe command from the client API Check with the dispatcher is this consumer can proceed with unsubscribe.java.util.concurrent.CompletableFuture<java.lang.Void>endTxn(long txnidMostBits, long txnidLeastBits, int txnAction, long lowWaterMark)booleanexpireMessages(int messageTTLInSeconds)booleanexpireMessages(org.apache.bookkeeper.mledger.Position position)java.util.List<Consumer>getConsumers()NonPersistentDispatchergetDispatcher()doublegetExpiredMessageRate()longgetLastActive()java.lang.StringgetName()longgetNumberOfEntriesInBacklog(boolean getPreciseBacklog)org.apache.pulsar.common.policies.data.stats.NonPersistentSubscriptionStatsImplgetStats()TopicgetTopic()java.lang.StringgetTopicName()org.apache.pulsar.common.api.proto.CommandSubscribe.SubTypegetType()java.lang.StringgetTypeString()BrokerInterceptorinterceptor()booleanisReplicated()voidmarkTopicWithBatchMessagePublished()java.util.concurrent.CompletableFuture<org.apache.bookkeeper.mledger.Entry>peekNthMessage(int messagePosition)voidredeliverUnacknowledgedMessages(Consumer consumer)voidredeliverUnacknowledgedMessages(Consumer consumer, java.util.List<org.apache.bookkeeper.mledger.impl.PositionImpl> positions)voidremoveConsumer(Consumer consumer, boolean isResetCursor)java.util.concurrent.CompletableFuture<java.lang.Void>resetCursor(long timestamp)java.util.concurrent.CompletableFuture<java.lang.Void>resetCursor(org.apache.bookkeeper.mledger.Position position)java.util.concurrent.CompletableFuture<java.lang.Void>skipMessages(int numMessagesToSkip)java.lang.StringtoString()voidupdateLastActive()-
Methods inherited from class org.apache.pulsar.broker.service.AbstractSubscription
getBytesOutCounter, getMsgOutCounter
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.pulsar.broker.service.Subscription
getNumberOfEntriesDelayed, getNumberOfSameAddressConsumers, processReplicatedSubscriptionSnapshot, removeConsumer
-
-
-
-
Constructor Detail
-
NonPersistentSubscription
public NonPersistentSubscription(NonPersistentTopic topic, java.lang.String subscriptionName, boolean isDurable)
-
-
Method Detail
-
interceptor
public BrokerInterceptor interceptor()
- Specified by:
interceptorin interfaceSubscription
-
getName
public java.lang.String getName()
- Specified by:
getNamein interfaceSubscription
-
getTopic
public Topic getTopic()
- Specified by:
getTopicin interfaceSubscription
-
isReplicated
public boolean isReplicated()
- Specified by:
isReplicatedin interfaceSubscription
-
addConsumer
public java.util.concurrent.CompletableFuture<java.lang.Void> addConsumer(Consumer consumer)
- Specified by:
addConsumerin interfaceSubscription
-
removeConsumer
public void removeConsumer(Consumer consumer, boolean isResetCursor) throws BrokerServiceException
- Specified by:
removeConsumerin interfaceSubscription- Throws:
BrokerServiceException
-
consumerFlow
public void consumerFlow(Consumer consumer, int additionalNumberOfMessages)
- Specified by:
consumerFlowin interfaceSubscription
-
acknowledgeMessage
public void acknowledgeMessage(java.util.List<org.apache.bookkeeper.mledger.Position> position, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, java.util.Map<java.lang.String,java.lang.Long> properties)- Specified by:
acknowledgeMessagein interfaceSubscription
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
getTopicName
public java.lang.String getTopicName()
- Specified by:
getTopicNamein interfaceSubscription
-
getType
public org.apache.pulsar.common.api.proto.CommandSubscribe.SubType getType()
- Specified by:
getTypein interfaceSubscription
-
getTypeString
public java.lang.String getTypeString()
- Specified by:
getTypeStringin interfaceSubscription
-
clearBacklog
public java.util.concurrent.CompletableFuture<java.lang.Void> clearBacklog()
- Specified by:
clearBacklogin interfaceSubscription
-
skipMessages
public java.util.concurrent.CompletableFuture<java.lang.Void> skipMessages(int numMessagesToSkip)
- Specified by:
skipMessagesin interfaceSubscription
-
resetCursor
public java.util.concurrent.CompletableFuture<java.lang.Void> resetCursor(long timestamp)
- Specified by:
resetCursorin interfaceSubscription
-
peekNthMessage
public java.util.concurrent.CompletableFuture<org.apache.bookkeeper.mledger.Entry> peekNthMessage(int messagePosition)
- Specified by:
peekNthMessagein interfaceSubscription
-
getNumberOfEntriesInBacklog
public long getNumberOfEntriesInBacklog(boolean getPreciseBacklog)
- Specified by:
getNumberOfEntriesInBacklogin interfaceSubscription
-
getDispatcher
public NonPersistentDispatcher getDispatcher()
- Specified by:
getDispatcherin interfaceSubscription
-
close
public java.util.concurrent.CompletableFuture<java.lang.Void> close()
- Specified by:
closein interfaceSubscription
-
disconnect
public java.util.concurrent.CompletableFuture<java.lang.Void> disconnect()
Disconnect all consumers attached to the dispatcher and close this subscription.- Specified by:
disconnectin interfaceSubscription- Returns:
- CompletableFuture indicating the completion of disconnect operation
-
delete
public java.util.concurrent.CompletableFuture<java.lang.Void> delete()
Delete the subscription by closing and deleting its managed cursor if no consumers are connected to it. Handle unsubscribe call from admin layer.- Specified by:
deletein interfaceSubscription- Returns:
- CompletableFuture indicating the completion of delete operation
-
deleteForcefully
public java.util.concurrent.CompletableFuture<java.lang.Void> deleteForcefully()
Forcefully close all consumers and deletes the subscription.- Specified by:
deleteForcefullyin interfaceSubscription- Returns:
-
doUnsubscribe
public java.util.concurrent.CompletableFuture<java.lang.Void> doUnsubscribe(Consumer consumer)
Handle unsubscribe command from the client API Check with the dispatcher is this consumer can proceed with unsubscribe.- Specified by:
doUnsubscribein interfaceSubscription- Parameters:
consumer- consumer object that is initiating the unsubscribe operation- Returns:
- CompletableFuture indicating the completion of ubsubscribe operation
-
getConsumers
public java.util.List<Consumer> getConsumers()
- Specified by:
getConsumersin interfaceSubscription
-
expireMessages
public boolean expireMessages(int messageTTLInSeconds)
- Specified by:
expireMessagesin interfaceSubscription
-
expireMessages
public boolean expireMessages(org.apache.bookkeeper.mledger.Position position)
- Specified by:
expireMessagesin interfaceSubscription
-
getStats
public org.apache.pulsar.common.policies.data.stats.NonPersistentSubscriptionStatsImpl getStats()
-
redeliverUnacknowledgedMessages
public void redeliverUnacknowledgedMessages(Consumer consumer)
- Specified by:
redeliverUnacknowledgedMessagesin interfaceSubscription
-
redeliverUnacknowledgedMessages
public void redeliverUnacknowledgedMessages(Consumer consumer, java.util.List<org.apache.bookkeeper.mledger.impl.PositionImpl> positions)
- Specified by:
redeliverUnacknowledgedMessagesin interfaceSubscription
-
addUnAckedMessages
public void addUnAckedMessages(int unAckMessages)
- Specified by:
addUnAckedMessagesin interfaceSubscription
-
getExpiredMessageRate
public double getExpiredMessageRate()
- Specified by:
getExpiredMessageRatein interfaceSubscription
-
markTopicWithBatchMessagePublished
public void markTopicWithBatchMessagePublished()
- Specified by:
markTopicWithBatchMessagePublishedin interfaceSubscription
-
resetCursor
public java.util.concurrent.CompletableFuture<java.lang.Void> resetCursor(org.apache.bookkeeper.mledger.Position position)
- Specified by:
resetCursorin interfaceSubscription
-
endTxn
public java.util.concurrent.CompletableFuture<java.lang.Void> endTxn(long txnidMostBits, long txnidLeastBits, int txnAction, long lowWaterMark)- Specified by:
endTxnin interfaceSubscription
-
getLastActive
public long getLastActive()
-
updateLastActive
public void updateLastActive()
-
-