Class MultiTopicsConsumerImpl<T>

java.lang.Object
org.apache.pulsar.client.impl.ConsumerBase<T>
org.apache.pulsar.client.impl.MultiTopicsConsumerImpl<T>
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.pulsar.client.api.Consumer<T>
Direct Known Subclasses:
PatternMultiTopicsConsumerImpl

public class MultiTopicsConsumerImpl<T> extends ConsumerBase<T>
  • Field Details

  • Method Details

    • messageProcessed

      protected void messageProcessed(org.apache.pulsar.client.api.Message<?> msg)
      Specified by:
      messageProcessed in class ConsumerBase<T>
    • minReceiverQueueSize

      public int minReceiverQueueSize()
      Specified by:
      minReceiverQueueSize in class ConsumerBase<T>
    • internalReceive

      protected org.apache.pulsar.client.api.Message<T> internalReceive() throws org.apache.pulsar.client.api.PulsarClientException
      Specified by:
      internalReceive in class ConsumerBase<T>
      Throws:
      org.apache.pulsar.client.api.PulsarClientException
    • internalReceive

      protected org.apache.pulsar.client.api.Message<T> internalReceive(long timeout, TimeUnit unit) throws org.apache.pulsar.client.api.PulsarClientException
      Specified by:
      internalReceive in class ConsumerBase<T>
      Throws:
      org.apache.pulsar.client.api.PulsarClientException
    • internalBatchReceive

      protected org.apache.pulsar.client.api.Messages<T> internalBatchReceive() throws org.apache.pulsar.client.api.PulsarClientException
      Specified by:
      internalBatchReceive in class ConsumerBase<T>
      Throws:
      org.apache.pulsar.client.api.PulsarClientException
    • internalBatchReceiveAsync

      protected CompletableFuture<org.apache.pulsar.client.api.Messages<T>> internalBatchReceiveAsync()
      Specified by:
      internalBatchReceiveAsync in class ConsumerBase<T>
    • internalReceiveAsync

      protected CompletableFuture<org.apache.pulsar.client.api.Message<T>> internalReceiveAsync()
      Specified by:
      internalReceiveAsync in class ConsumerBase<T>
    • doAcknowledge

      protected CompletableFuture<Void> doAcknowledge(org.apache.pulsar.client.api.MessageId messageId, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, Map<String,Long> properties, TransactionImpl txnImpl)
      Specified by:
      doAcknowledge in class ConsumerBase<T>
    • doAcknowledge

      protected CompletableFuture<Void> doAcknowledge(List<org.apache.pulsar.client.api.MessageId> messageIdList, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, Map<String,Long> properties, TransactionImpl txn)
      Specified by:
      doAcknowledge in class ConsumerBase<T>
    • doReconsumeLater

      protected CompletableFuture<Void> doReconsumeLater(org.apache.pulsar.client.api.Message<?> message, org.apache.pulsar.common.api.proto.CommandAck.AckType ackType, Map<String,String> customProperties, long delayTime, TimeUnit unit)
      Specified by:
      doReconsumeLater in class ConsumerBase<T>
    • negativeAcknowledge

      public void negativeAcknowledge(org.apache.pulsar.client.api.MessageId messageId)
    • negativeAcknowledge

      public void negativeAcknowledge(org.apache.pulsar.client.api.Message<?> message)
      Specified by:
      negativeAcknowledge in interface org.apache.pulsar.client.api.Consumer<T>
      Overrides:
      negativeAcknowledge in class ConsumerBase<T>
    • unsubscribeAsync

      public CompletableFuture<Void> unsubscribeAsync()
      Specified by:
      unsubscribeAsync in interface org.apache.pulsar.client.api.Consumer<T>
      Specified by:
      unsubscribeAsync in class ConsumerBase<T>
    • closeAsync

      public CompletableFuture<Void> closeAsync()
      Specified by:
      closeAsync in interface org.apache.pulsar.client.api.Consumer<T>
      Specified by:
      closeAsync in class ConsumerBase<T>
    • isConnected

      public boolean isConnected()
    • redeliverUnacknowledgedMessages

      public void redeliverUnacknowledgedMessages()
    • redeliverUnacknowledgedMessages

      public void redeliverUnacknowledgedMessages(Set<org.apache.pulsar.client.api.MessageId> messageIds)
      Description copied from class: ConsumerBase
      Redelivers the given unacknowledged messages. In Failover mode, the request is ignored if the consumer is not active for the given topic. In Shared mode, the consumers messages to be redelivered are distributed across all the connected consumers. This is a non blocking call and doesn't throw an exception. In case the connection breaks, the messages are redelivered after reconnect.
      Specified by:
      redeliverUnacknowledgedMessages in class ConsumerBase<T>
    • updateAutoScaleReceiverQueueHint

      protected void updateAutoScaleReceiverQueueHint()
      Specified by:
      updateAutoScaleReceiverQueueHint in class ConsumerBase<T>
    • completeOpBatchReceive

      protected void completeOpBatchReceive(ConsumerBase.OpBatchReceive<T> op)
      Specified by:
      completeOpBatchReceive in class ConsumerBase<T>
    • seek

      public void seek(org.apache.pulsar.client.api.MessageId messageId) throws org.apache.pulsar.client.api.PulsarClientException
      Throws:
      org.apache.pulsar.client.api.PulsarClientException
    • seek

      public void seek(long timestamp) throws org.apache.pulsar.client.api.PulsarClientException
      Throws:
      org.apache.pulsar.client.api.PulsarClientException
    • seek

      public void seek(Function<String,Object> function) throws org.apache.pulsar.client.api.PulsarClientException
      Throws:
      org.apache.pulsar.client.api.PulsarClientException
    • seekAsync

      public CompletableFuture<Void> seekAsync(Function<String,Object> function)
    • seekAsync

      public CompletableFuture<Void> seekAsync(org.apache.pulsar.client.api.MessageId messageId)
    • seekAsync

      public CompletableFuture<Void> seekAsync(long timestamp)
    • getAvailablePermits

      public int getAvailablePermits()
      Specified by:
      getAvailablePermits in class ConsumerBase<T>
    • hasReachedEndOfTopic

      public boolean hasReachedEndOfTopic()
    • hasMessageAvailable

      public boolean hasMessageAvailable() throws org.apache.pulsar.client.api.PulsarClientException
      Throws:
      org.apache.pulsar.client.api.PulsarClientException
    • hasMessageAvailableAsync

      public CompletableFuture<Boolean> hasMessageAvailableAsync()
    • numMessagesInQueue

      public int numMessagesInQueue()
      Specified by:
      numMessagesInQueue in class ConsumerBase<T>
    • getStats

      public org.apache.pulsar.client.api.ConsumerStats getStats()
    • getUnAckedMessageTracker

      public UnAckedMessageTracker getUnAckedMessageTracker()
    • subscribeAsync

      public CompletableFuture<Void> subscribeAsync(String topicName, boolean createTopicIfDoesNotExist)
    • createPartitionedConsumer

      public static <T> MultiTopicsConsumerImpl<T> createPartitionedConsumer(PulsarClientImpl client, ConsumerConfigurationData<T> conf, ExecutorProvider executorProvider, CompletableFuture<org.apache.pulsar.client.api.Consumer<T>> subscribeFuture, int numPartitions, org.apache.pulsar.client.api.Schema<T> schema, ConsumerInterceptors<T> interceptors)
    • unsubscribeAsync

      public CompletableFuture<Void> unsubscribeAsync(String topicName)
    • removeConsumerAsync

      public CompletableFuture<Void> removeConsumerAsync(String topicName)
    • getPartitionedTopics

      public List<String> getPartitionedTopics()
    • getPartitions

      public List<String> getPartitions()
    • getConsumers

      public List<ConsumerImpl<T>> getConsumers()
    • pause

      public void pause()
    • resume

      public void resume()
    • getLastDisconnectedTimestamp

      public long getLastDisconnectedTimestamp()
    • getPartitionsAutoUpdateTimeout

      public io.netty.util.Timeout getPartitionsAutoUpdateTimeout()
    • getLastMessageIdAsync

      public CompletableFuture<org.apache.pulsar.client.api.MessageId> getLastMessageIdAsync()
      Specified by:
      getLastMessageIdAsync in interface org.apache.pulsar.client.api.Consumer<T>
      Specified by:
      getLastMessageIdAsync in class ConsumerBase<T>
    • isIllegalMultiTopicsMessageId

      public static boolean isIllegalMultiTopicsMessageId(org.apache.pulsar.client.api.MessageId messageId)
    • tryAcknowledgeMessage

      public void tryAcknowledgeMessage(org.apache.pulsar.client.api.Message<T> msg)
    • setCurrentReceiverQueueSize

      protected void setCurrentReceiverQueueSize(int newSize)
      Description copied from class: ConsumerBase
      Update the size of the consumer receive queue. See ConsumerBuilder.receiverQueueSize(int).
      Specified by:
      setCurrentReceiverQueueSize in class ConsumerBase<T>
      Parameters:
      newSize - new size of the receiver queue.
    • changeToReadyState

      protected boolean changeToReadyState()
    • changeToRegisteringSchemaState

      protected boolean changeToRegisteringSchemaState()
    • getState

      protected org.apache.pulsar.client.impl.HandlerState.State getState()
    • changeToConnecting

      protected boolean changeToConnecting()
    • setState

      protected void setState(org.apache.pulsar.client.impl.HandlerState.State s)
    • getAndUpdateState

      protected org.apache.pulsar.client.impl.HandlerState.State getAndUpdateState(UnaryOperator<org.apache.pulsar.client.impl.HandlerState.State> updater)
    • getClient

      public PulsarClientImpl getClient()