Package org.apache.pulsar.broker.service
Interface Dispatcher
-
- All Known Subinterfaces:
NonPersistentDispatcher,StreamingDispatcher
- All Known Implementing Classes:
AbstractBaseDispatcher,AbstractDispatcherMultipleConsumers,AbstractDispatcherSingleActiveConsumer,NonPersistentDispatcherMultipleConsumers,NonPersistentDispatcherSingleActiveConsumer,NonPersistentStickyKeyDispatcherMultipleConsumers,PersistentDispatcherMultipleConsumers,PersistentDispatcherSingleActiveConsumer,PersistentStickyKeyDispatcherMultipleConsumers,PersistentStreamingDispatcherMultipleConsumers,PersistentStreamingDispatcherSingleActiveConsumer
public interface Dispatcher
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description voidaddConsumer(Consumer consumer)voidaddUnAckedMessages(int unAckMessages)booleancanUnsubscribe(Consumer consumer)default booleancheckAndUnblockIfStuck()Checks if dispatcher is stuck and unblocks the dispatch if needed.default voidclearDelayedMessages()java.util.concurrent.CompletableFuture<java.lang.Void>close()mark dispatcher closed to stop new incoming requests and disconnect all consumers.voidconsumerFlow(Consumer consumer, int additionalNumberOfMessages)Indicates that this consumer is now ready to receive more messages.default voidcursorIsReset()java.util.concurrent.CompletableFuture<java.lang.Void>disconnectActiveConsumers(boolean isResetCursor)Disconnect active consumers.default java.util.concurrent.CompletableFuture<java.lang.Void>disconnectAllConsumers()java.util.concurrent.CompletableFuture<java.lang.Void>disconnectAllConsumers(boolean isResetCursor)disconnect all consumers.java.util.List<Consumer>getConsumers()default longgetNumberOfDelayedMessages()default java.util.Optional<DispatchRateLimiter>getRateLimiter()RedeliveryTrackergetRedeliveryTracker()org.apache.pulsar.common.api.proto.CommandSubscribe.SubTypegetType()default booleaninitializeDispatchRateLimiterIfNeeded()booleanisClosed()booleanisConsumerConnected()default voidmarkDeletePositionMoveForward()voidredeliverUnacknowledgedMessages(Consumer consumer, long consumerEpoch)voidredeliverUnacknowledgedMessages(Consumer consumer, java.util.List<org.apache.bookkeeper.mledger.impl.PositionImpl> positions)voidremoveConsumer(Consumer consumer)voidreset()mark dispatcher open to serve new incoming requests.voidresetCloseFuture()default 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 voidupdateRateLimiter()
-
-
-
Method Detail
-
addConsumer
void addConsumer(Consumer consumer) throws BrokerServiceException
- Throws:
BrokerServiceException
-
removeConsumer
void removeConsumer(Consumer consumer) throws BrokerServiceException
- Throws:
BrokerServiceException
-
consumerFlow
void consumerFlow(Consumer consumer, int additionalNumberOfMessages)
Indicates that this consumer is now ready to receive more messages.- Parameters:
consumer-
-
isConsumerConnected
boolean isConsumerConnected()
-
getConsumers
java.util.List<Consumer> getConsumers()
-
canUnsubscribe
boolean canUnsubscribe(Consumer consumer)
-
close
java.util.concurrent.CompletableFuture<java.lang.Void> close()
mark dispatcher closed to stop new incoming requests and disconnect all consumers.- Returns:
-
isClosed
boolean isClosed()
-
disconnectActiveConsumers
java.util.concurrent.CompletableFuture<java.lang.Void> disconnectActiveConsumers(boolean isResetCursor)
Disconnect active consumers.
-
disconnectAllConsumers
java.util.concurrent.CompletableFuture<java.lang.Void> disconnectAllConsumers(boolean isResetCursor)
disconnect all consumers.- Returns:
-
disconnectAllConsumers
default java.util.concurrent.CompletableFuture<java.lang.Void> disconnectAllConsumers()
-
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
void redeliverUnacknowledgedMessages(Consumer consumer, long consumerEpoch)
-
redeliverUnacknowledgedMessages
void redeliverUnacknowledgedMessages(Consumer consumer, java.util.List<org.apache.bookkeeper.mledger.impl.PositionImpl> positions)
-
addUnAckedMessages
void addUnAckedMessages(int unAckMessages)
-
getRedeliveryTracker
RedeliveryTracker getRedeliveryTracker()
-
getRateLimiter
default java.util.Optional<DispatchRateLimiter> 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
default void clearDelayedMessages()
-
cursorIsReset
default void cursorIsReset()
-
markDeletePositionMoveForward
default void markDeletePositionMoveForward()
-
checkAndUnblockIfStuck
default boolean checkAndUnblockIfStuck()
Checks if dispatcher is stuck and unblocks the dispatch if needed.
-
-