Package org.apache.pulsar.client.impl
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
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.pulsar.client.impl.ConsumerBase
ConsumerBase.OpBatchReceive<T> -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final PulsarClientImplstatic final Stringprotected final ConcurrentHashMap<String,Integer> protected final StringFields inherited from class org.apache.pulsar.client.impl.ConsumerBase
batchReceivePolicy, batchReceiveTimeout, conf, CONSUMER_EPOCH, consumerEpoch, consumerEventListener, consumerName, CURRENT_RECEIVER_QUEUE_SIZE_UPDATER, executorProvider, externalPinnedExecutor, incomingMessagesSize, INITIAL_RECEIVER_QUEUE_SIZE, interceptors, internalPinnedExecutor, listener, maxReceiverQueueSize, MEMORY_THRESHOLD_FOR_RECEIVER_QUEUE_SIZE_EXPANSION, pendingBatchReceives, pendingReceives, reentrantLock, scaleReceiverQueueHint, schema, subscribeFuture, subscription, unAckedChunkedMessageIdSequenceMap -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanprotected booleanprotected booleanprotected voidstatic <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) 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) 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) 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) protected org.apache.pulsar.client.impl.HandlerState.StategetAndUpdateState(UnaryOperator<org.apache.pulsar.client.impl.HandlerState.State> updater) intlongCompletableFuture<org.apache.pulsar.client.api.MessageId>io.netty.util.Timeoutprotected org.apache.pulsar.client.impl.HandlerState.StategetState()org.apache.pulsar.client.api.ConsumerStatsgetStats()booleanbooleanprotected org.apache.pulsar.client.api.Messages<T>protected CompletableFuture<org.apache.pulsar.client.api.Messages<T>>protected org.apache.pulsar.client.api.Message<T>protected org.apache.pulsar.client.api.Message<T>internalReceive(long timeout, TimeUnit unit) protected CompletableFuture<org.apache.pulsar.client.api.Message<T>>booleanstatic booleanisIllegalMultiTopicsMessageId(org.apache.pulsar.client.api.MessageId messageId) protected voidmessageProcessed(org.apache.pulsar.client.api.Message<?> msg) intvoidnegativeAcknowledge(org.apache.pulsar.client.api.Message<?> message) voidnegativeAcknowledge(org.apache.pulsar.client.api.MessageId messageId) intvoidpause()voidvoidredeliverUnacknowledgedMessages(Set<org.apache.pulsar.client.api.MessageId> messageIds) Redelivers the given unacknowledged messages.removeConsumerAsync(String topicName) voidresume()voidseek(long timestamp) voidvoidseek(org.apache.pulsar.client.api.MessageId messageId) seekAsync(long timestamp) seekAsync(org.apache.pulsar.client.api.MessageId messageId) protected voidsetCurrentReceiverQueueSize(int newSize) Update the size of the consumer receive queue.protected voidsetState(org.apache.pulsar.client.impl.HandlerState.State s) subscribeAsync(String topicName, boolean createTopicIfDoesNotExist) voidtryAcknowledgeMessage(org.apache.pulsar.client.api.Message<T> msg) unsubscribeAsync(String topicName) protected voidMethods inherited from class org.apache.pulsar.client.impl.ConsumerBase
acknowledge, acknowledge, acknowledge, acknowledge, acknowledgeAsync, acknowledgeAsync, acknowledgeAsync, acknowledgeAsync, acknowledgeAsync, acknowledgeAsync, acknowledgeAsync, acknowledgeCumulative, acknowledgeCumulative, acknowledgeCumulativeAsync, acknowledgeCumulativeAsync, acknowledgeCumulativeAsync, batchReceive, batchReceiveAsync, beforeConsume, callMessageListener, canEnqueueMessage, clearIncomingMessages, close, completePendingBatchReceive, completePendingReceive, decreaseIncomingMessageSize, doAcknowledgeWithTxn, doAcknowledgeWithTxn, enqueueMessageAndCheckBatchReceive, expectMoreIncomingMessages, failPendingReceive, getConsumerName, getCurrentReceiverQueueSize, getIncomingMessageSize, getLastMessageId, getNewMessagesImpl, getSubscription, getSubType, getTopic, getTotalIncomingMessages, hasBatchReceiveTimeout, hasEnoughMessagesForBatchReceive, hasNextPendingReceive, hasPendingBatchReceive, initReceiverQueueSize, isValidConsumerEpoch, negativeAcknowledge, nextPendingReceive, notifyPendingBatchReceivedCallBack, notifyPendingBatchReceivedCallBack, onAcknowledge, onAcknowledge, onAcknowledgeCumulative, onAcknowledgeCumulative, onAckTimeoutSend, onNegativeAcksSend, onPartitionsChange, peekMessageKey, receive, receive, receiveAsync, reconsumeLater, reconsumeLater, reconsumeLater, reconsumeLaterAsync, reconsumeLaterAsync, reconsumeLaterAsync, reconsumeLaterCumulative, reconsumeLaterCumulativeAsync, reconsumeLaterCumulativeAsync, reduceCurrentReceiverQueueSize, resetIncomingMessageSize, subscribeFuture, toString, triggerBatchReceiveTimeoutTask, tryTriggerListener, unsubscribe
-
Field Details
-
DUMMY_TOPIC_NAME_PREFIX
- See Also:
-
partitionedTopics
-
client
-
topic
-
-
Method Details
-
messageProcessed
protected void messageProcessed(org.apache.pulsar.client.api.Message<?> msg) - Specified by:
messageProcessedin classConsumerBase<T>
-
minReceiverQueueSize
public int minReceiverQueueSize()- Specified by:
minReceiverQueueSizein classConsumerBase<T>
-
internalReceive
protected org.apache.pulsar.client.api.Message<T> internalReceive() throws org.apache.pulsar.client.api.PulsarClientException- Specified by:
internalReceivein classConsumerBase<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:
internalReceivein classConsumerBase<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:
internalBatchReceivein classConsumerBase<T>- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
internalBatchReceiveAsync
- Specified by:
internalBatchReceiveAsyncin classConsumerBase<T>
-
internalReceiveAsync
- Specified by:
internalReceiveAsyncin classConsumerBase<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:
doAcknowledgein classConsumerBase<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:
doAcknowledgein classConsumerBase<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:
doReconsumeLaterin classConsumerBase<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:
negativeAcknowledgein interfaceorg.apache.pulsar.client.api.Consumer<T>- Overrides:
negativeAcknowledgein classConsumerBase<T>
-
unsubscribeAsync
- Specified by:
unsubscribeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>- Specified by:
unsubscribeAsyncin classConsumerBase<T>
-
closeAsync
- Specified by:
closeAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>- Specified by:
closeAsyncin classConsumerBase<T>
-
isConnected
public boolean isConnected() -
redeliverUnacknowledgedMessages
public void redeliverUnacknowledgedMessages() -
redeliverUnacknowledgedMessages
Description copied from class:ConsumerBaseRedelivers 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:
redeliverUnacknowledgedMessagesin classConsumerBase<T>
-
updateAutoScaleReceiverQueueHint
protected void updateAutoScaleReceiverQueueHint()- Specified by:
updateAutoScaleReceiverQueueHintin classConsumerBase<T>
-
completeOpBatchReceive
- Specified by:
completeOpBatchReceivein classConsumerBase<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
-
seekAsync
-
seekAsync
-
getAvailablePermits
public int getAvailablePermits()- Specified by:
getAvailablePermitsin classConsumerBase<T>
-
hasReachedEndOfTopic
public boolean hasReachedEndOfTopic() -
hasMessageAvailable
public boolean hasMessageAvailable() throws org.apache.pulsar.client.api.PulsarClientException- Throws:
org.apache.pulsar.client.api.PulsarClientException
-
hasMessageAvailableAsync
-
numMessagesInQueue
public int numMessagesInQueue()- Specified by:
numMessagesInQueuein classConsumerBase<T>
-
getStats
public org.apache.pulsar.client.api.ConsumerStats getStats() -
getUnAckedMessageTracker
-
subscribeAsync
-
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
-
removeConsumerAsync
-
getPartitionedTopics
-
getPartitions
-
getConsumers
-
pause
public void pause() -
resume
public void resume() -
getLastDisconnectedTimestamp
public long getLastDisconnectedTimestamp() -
getPartitionsAutoUpdateTimeout
public io.netty.util.Timeout getPartitionsAutoUpdateTimeout() -
getLastMessageIdAsync
- Specified by:
getLastMessageIdAsyncin interfaceorg.apache.pulsar.client.api.Consumer<T>- Specified by:
getLastMessageIdAsyncin classConsumerBase<T>
-
isIllegalMultiTopicsMessageId
public static boolean isIllegalMultiTopicsMessageId(org.apache.pulsar.client.api.MessageId messageId) -
tryAcknowledgeMessage
-
setCurrentReceiverQueueSize
protected void setCurrentReceiverQueueSize(int newSize) Description copied from class:ConsumerBaseUpdate the size of the consumer receive queue. SeeConsumerBuilder.receiverQueueSize(int).- Specified by:
setCurrentReceiverQueueSizein classConsumerBase<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
-