Class PersistentStickyKeyDispatcherMultipleConsumers
java.lang.Object
org.apache.pulsar.broker.service.EntryFilterSupport
org.apache.pulsar.broker.service.AbstractBaseDispatcher
org.apache.pulsar.broker.service.AbstractDispatcherMultipleConsumers
org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers
org.apache.pulsar.broker.service.persistent.PersistentStickyKeyDispatcherMultipleConsumers
- All Implemented Interfaces:
org.apache.bookkeeper.mledger.AsyncCallbacks.ReadEntriesCallback,Dispatcher
public class PersistentStickyKeyDispatcherMultipleConsumers
extends PersistentDispatcherMultipleConsumers
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers
PersistentDispatcherMultipleConsumers.ReadType -
Field Summary
Fields inherited from class org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers
BLOCKED_DISPATCHER_ON_UNACKMSG_UPDATER, cursor, dispatchMessagesThread, dispatchRateLimiter, havePendingRead, havePendingReplayRead, lastIndividualDeletedRangeFromCursorRecovery, minReplayedPosition, name, readBatchSize, readFailureBackoff, redeliveryMessages, redeliveryTracker, sendInProgress, shouldRewindBeforeReadingOrReplaying, topic, TOTAL_AVAILABLE_PERMITS_UPDATER, totalAvailablePermits, totalUnackedMessagesFields inherited from class org.apache.pulsar.broker.service.AbstractDispatcherMultipleConsumers
consumerList, consumerSet, currentConsumerRoundRobinIndex, FALSE, IS_CLOSED_UPDATER, TRUEFields inherited from class org.apache.pulsar.broker.service.AbstractBaseDispatcher
dispatchThrottlingOnBatchMessageEnabled, serviceConfigFields inherited from class org.apache.pulsar.broker.service.EntryFilterSupport
entryFilters, filterContext, subscription -
Method Summary
Modifier and TypeMethodDescriptionvoidaddConsumer(Consumer consumer) protected Set<? extends org.apache.bookkeeper.mledger.Position>asyncReplayEntries(Set<? extends org.apache.bookkeeper.mledger.Position> positions) org.apache.pulsar.common.api.proto.KeySharedModeprotected Set<org.apache.bookkeeper.mledger.impl.PositionImpl>getMessagesToReplayNow(int maxMessagesToRead) LinkedHashMap<Consumer,org.apache.bookkeeper.mledger.impl.PositionImpl> org.apache.pulsar.common.api.proto.CommandSubscribe.SubTypegetType()booleanhasSameKeySharedPolicy(org.apache.pulsar.common.api.proto.KeySharedMeta ksm) booleanvoidvoidremoveConsumer(Consumer consumer) protected booleantrySendMessagesToConsumers(PersistentDispatcherMultipleConsumers.ReadType readType, List<org.apache.bookkeeper.mledger.Entry> entries) Dispatch the messages to the Consumers.Methods inherited from class org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers
addMessageToReplay, addMessageToReplay, addUnAckedMessages, asyncReplayEntriesInOrder, blockDispatcherOnUnackedMsgs, calculateToRead, cancelPendingRead, canUnsubscribe, checkAndUnblockIfStuck, clearDelayedMessages, close, consumerFlow, cursorIsReset, disconnectActiveConsumers, disconnectAllConsumers, getConsumers, getDelayedTrackerMemoryUsage, getFirstAvailableConsumerPermits, getName, getNumberOfDelayedMessages, getRateLimiter, getRedeliveryTracker, getStickyKeyHash, getTopic, getTotalUnackedMessages, initializeDispatchRateLimiterIfNeeded, isAtleastOneConsumerAvailable, isBlockedDispatcherOnUnackedMsgs, isConsumerAvailable, isConsumerConnected, isConsumersExceededOnSubscription, readEntriesComplete, readEntriesFailed, readMoreEntries, readMoreEntriesAsync, redeliverUnacknowledgedMessages, redeliverUnacknowledgedMessages, reScheduleRead, reset, resetCloseFuture, sendMessagesToConsumers, shouldPauseDeliveryForDelayTracker, trackDelayedDelivery, unBlockDispatcherOnUnackedMsgs, updateRateLimiterMethods inherited from class org.apache.pulsar.broker.service.AbstractDispatcherMultipleConsumers
getNextConsumer, getRandomConsumer, isClosedMethods inherited from class org.apache.pulsar.broker.service.AbstractBaseDispatcher
computeReadLimits, filterEntriesForConsumer, filterEntriesForConsumer, getFilterAcceptedMsgCount, getFilterProcessedMsgCount, getFilterRejectedMsgCount, getFilterRescheduledMsgCount, getSubscriptionName, isConsumersExceededOnSubscription, peekStickyKey, reachDispatchRateLimit, updateMessagesToRead, updatePendingBytesToDispatchMethods inherited from class org.apache.pulsar.broker.service.EntryFilterSupport
runFiltersForEntryMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.pulsar.broker.service.Dispatcher
disconnectAllConsumers, getFilterAcceptedMsgCount, getFilterProcessedMsgCount, getFilterRejectedMsgCount, getFilterRescheduledMsgCount, isClosed
-
Method Details
-
addConsumer
- Specified by:
addConsumerin interfaceDispatcher- Overrides:
addConsumerin classPersistentDispatcherMultipleConsumers- Throws:
BrokerServiceException
-
removeConsumer
- Specified by:
removeConsumerin interfaceDispatcher- Overrides:
removeConsumerin classPersistentDispatcherMultipleConsumers- Throws:
BrokerServiceException
-
trySendMessagesToConsumers
protected boolean trySendMessagesToConsumers(PersistentDispatcherMultipleConsumers.ReadType readType, List<org.apache.bookkeeper.mledger.Entry> entries) Description copied from class:PersistentDispatcherMultipleConsumersDispatch the messages to the Consumers.- Overrides:
trySendMessagesToConsumersin classPersistentDispatcherMultipleConsumers- Returns:
- true if you want to trigger a new read. This method is overridden by other classes, please take a look to other implementations if you need to change it.
-
markDeletePositionMoveForward
public void markDeletePositionMoveForward() -
getMessagesToReplayNow
protected Set<org.apache.bookkeeper.mledger.impl.PositionImpl> getMessagesToReplayNow(int maxMessagesToRead) - Overrides:
getMessagesToReplayNowin classPersistentDispatcherMultipleConsumers
-
getType
public org.apache.pulsar.common.api.proto.CommandSubscribe.SubType getType()- Specified by:
getTypein interfaceDispatcher- Overrides:
getTypein classPersistentDispatcherMultipleConsumers
-
asyncReplayEntries
protected Set<? extends org.apache.bookkeeper.mledger.Position> asyncReplayEntries(Set<? extends org.apache.bookkeeper.mledger.Position> positions) - Overrides:
asyncReplayEntriesin classPersistentDispatcherMultipleConsumers
-
isAllowOutOfOrderDelivery
public boolean isAllowOutOfOrderDelivery() -
getRecentlyJoinedConsumers
public LinkedHashMap<Consumer,org.apache.bookkeeper.mledger.impl.PositionImpl> getRecentlyJoinedConsumers() -
getConsumerKeyHashRanges
-