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 Details

    • 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

      List<Consumer> getConsumers()
    • canUnsubscribe

      boolean canUnsubscribe(Consumer consumer)
    • close

      mark dispatcher closed to stop new incoming requests and disconnect all consumers.
      Returns:
    • isClosed

      boolean isClosed()
    • disconnectActiveConsumers

      CompletableFuture<Void> disconnectActiveConsumers(boolean isResetCursor)
      Disconnect active consumers.
    • disconnectAllConsumers

      CompletableFuture<Void> disconnectAllConsumers(boolean isResetCursor)
      disconnect all consumers.
      Returns:
    • disconnectAllConsumers

      default CompletableFuture<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, List<org.apache.bookkeeper.mledger.impl.PositionImpl> positions)
    • addUnAckedMessages

      void addUnAckedMessages(int unAckMessages)
    • getRedeliveryTracker

      RedeliveryTracker getRedeliveryTracker()
    • getRateLimiter

      default 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.
    • getFilterProcessedMsgCount

      default long getFilterProcessedMsgCount()
    • getFilterAcceptedMsgCount

      default long getFilterAcceptedMsgCount()
    • getFilterRejectedMsgCount

      default long getFilterRejectedMsgCount()
    • getFilterRescheduledMsgCount

      default long getFilterRescheduledMsgCount()