Package org.apache.pulsar.broker.service
Interface Dispatcher
- All Known Subinterfaces:
NonPersistentDispatcher,StickyKeyDispatcher
- All Known Implementing Classes:
AbstractBaseDispatcher,AbstractDispatcherMultipleConsumers,AbstractDispatcherSingleActiveConsumer,AbstractPersistentDispatcherMultipleConsumers,NonPersistentDispatcherMultipleConsumers,NonPersistentDispatcherSingleActiveConsumer,NonPersistentStickyKeyDispatcherMultipleConsumers,PersistentDispatcherMultipleConsumers,PersistentDispatcherMultipleConsumersClassic,PersistentDispatcherSingleActiveConsumer,PersistentStickyKeyDispatcherMultipleConsumers,PersistentStickyKeyDispatcherMultipleConsumersClassic
public interface Dispatcher
-
Method Summary
Modifier and TypeMethodDescriptionaddConsumer(Consumer consumer) voidaddUnAckedMessages(int unAckMessages) default voidafterAckMessages(Throwable exOfDeletion, Object ctxOfDeletion) A callback hook after acknowledge messages.booleancanUnsubscribe(Consumer consumer) default booleanTrigger a new "readMoreEntries" if the dispatching has been paused before.default booleanChecks if dispatcher is stuck and unblocks the dispatch if needed.default CompletableFuture<Void>default CompletableFuture<Void>close()mark dispatcher closed to stop new incoming requests and disconnect all consumers.close(boolean disconnectClients, Optional<BrokerLookupData> assignedBrokerLookupData) voidconsumerFlow(Consumer consumer, int additionalNumberOfMessages) Indicates that this consumer is now ready to receive more messages.default voiddisconnectActiveConsumers(boolean isResetCursor) Disconnect active consumers.default CompletableFuture<Void>default CompletableFuture<Void>disconnectAllConsumers(boolean isResetCursor) disconnect all consumers.disconnectAllConsumers(boolean isResetCursor, Optional<BrokerLookupData> assignedBrokerLookupData) default longdefault longdefault longdefault longdefault longdefault Optional<DispatchRateLimiter>org.apache.pulsar.common.api.proto.CommandSubscribe.SubTypegetType()default booleanbooleanisClosed()booleandefault voidvoidredeliverUnacknowledgedMessages(Consumer consumer, long consumerEpoch) voidredeliverUnacknowledgedMessages(Consumer consumer, List<Position> positions) voidremoveConsumer(Consumer consumer) voidreset()mark dispatcher open to serve new incoming requests.voiddefault booleantrackDelayedDelivery(long ledgerId, long entryId, org.apache.pulsar.common.api.proto.MessageMetadata msgMetadata) Check with dispatcher if the message should be added to the delayed delivery tracker.default void
-
Method Details
-
addConsumer
-
removeConsumer
- Throws:
BrokerServiceException
-
consumerFlow
Indicates that this consumer is now ready to receive more messages.- Parameters:
consumer-
-
isConsumerConnected
boolean isConsumerConnected() -
getConsumers
-
canUnsubscribe
-
close
mark dispatcher closed to stop new incoming requests and disconnect all consumers.- Returns:
-
close
CompletableFuture<Void> close(boolean disconnectClients, Optional<BrokerLookupData> assignedBrokerLookupData) -
isClosed
boolean isClosed() -
disconnectActiveConsumers
Disconnect active consumers. -
disconnectAllConsumers
disconnect all consumers.- Returns:
-
disconnectAllConsumers
-
disconnectAllConsumers
CompletableFuture<Void> disconnectAllConsumers(boolean isResetCursor, Optional<BrokerLookupData> assignedBrokerLookupData) -
resetCloseFuture
void resetCloseFuture() -
reset
void reset()mark dispatcher open to serve new incoming requests. -
getType
org.apache.pulsar.common.api.proto.CommandSubscribe.SubType getType() -
redeliverUnacknowledgedMessages
-
redeliverUnacknowledgedMessages
-
addUnAckedMessages
void addUnAckedMessages(int unAckMessages) -
getRedeliveryTracker
RedeliveryTracker getRedeliveryTracker() -
getRateLimiter
-
updateRateLimiter
default void updateRateLimiter() -
initializeDispatchRateLimiterIfNeeded
default boolean initializeDispatchRateLimiterIfNeeded() -
trackDelayedDelivery
default boolean trackDelayedDelivery(long ledgerId, long entryId, org.apache.pulsar.common.api.proto.MessageMetadata msgMetadata) Check with dispatcher if the message should be added to the delayed delivery tracker. Return true if the message should be delayed and ignored at this point. -
getNumberOfDelayedMessages
default long getNumberOfDelayedMessages() -
clearDelayedMessages
-
cursorIsReset
default void cursorIsReset() -
markDeletePositionMoveForward
default void markDeletePositionMoveForward() -
checkAndUnblockIfStuck
default boolean checkAndUnblockIfStuck()Checks if dispatcher is stuck and unblocks the dispatch if needed. -
afterAckMessages
A callback hook after acknowledge messages.- Parameters:
exOfDeletion- the ex ofManagedCursor.asyncDelete(org.apache.bookkeeper.mledger.Position, org.apache.bookkeeper.mledger.AsyncCallbacks.DeleteCallback, java.lang.Object),ManagedCursor.asyncClearBacklog(org.apache.bookkeeper.mledger.AsyncCallbacks.ClearBacklogCallback, java.lang.Object)or {@link ManagedCursor#asyncSkipEntries)}.ctxOfDeletion- the param ctx of callingManagedCursor.asyncDelete(org.apache.bookkeeper.mledger.Position, org.apache.bookkeeper.mledger.AsyncCallbacks.DeleteCallback, java.lang.Object),ManagedCursor.asyncClearBacklog(org.apache.bookkeeper.mledger.AsyncCallbacks.ClearBacklogCallback, java.lang.Object)or {@link ManagedCursor#asyncSkipEntries)}.
-
checkAndResumeIfPaused
default boolean checkAndResumeIfPaused()Trigger a new "readMoreEntries" if the dispatching has been paused before. This method is only implemented inAbstractPersistentDispatcherMultipleConsumersright now, other implementations do not necessary implement this method.- Returns:
- did a resume.
-
getFilterProcessedMsgCount
default long getFilterProcessedMsgCount() -
getFilterAcceptedMsgCount
default long getFilterAcceptedMsgCount() -
getFilterRejectedMsgCount
default long getFilterRejectedMsgCount() -
getFilterRescheduledMsgCount
default long getFilterRescheduledMsgCount()
-