Interface StickyKeyConsumerSelector

All Known Implementing Classes:
ConsistentHashingStickyKeyConsumerSelector, HashRangeAutoSplitStickyKeyConsumerSelector, HashRangeExclusiveStickyKeyConsumerSelector

public interface StickyKeyConsumerSelector
  • Field Details

  • Method Details

    • addConsumer

      void addConsumer(Consumer consumer) throws BrokerServiceException.ConsumerAssignException
      Add a new consumer.
      Parameters:
      consumer - new consumer
      Throws:
      BrokerServiceException.ConsumerAssignException
    • removeConsumer

      void removeConsumer(Consumer consumer)
      Remove the consumer.
      Parameters:
      consumer - consumer to be removed
    • select

      default Consumer select(byte[] stickyKey)
      Select a consumer by sticky key.
      Parameters:
      stickyKey - sticky key
      Returns:
      consumer
    • makeStickyKeyHash

      static int makeStickyKeyHash(byte[] stickyKey)
    • select

      Consumer select(int hash)
      Select a consumer by hash.
      Parameters:
      hash - hash corresponding to sticky key
      Returns:
      consumer
    • getConsumerKeyHashRanges

      Map<Consumer,List<org.apache.pulsar.client.api.Range>> getConsumerKeyHashRanges()
      Get key hash ranges handled by each consumer.
      Returns:
      A map where key is a consumer name and value is list of hash range it receiving message for.