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
,Consumer<T>
,MessageAcknowledger
- Direct Known Subclasses:
PatternMultiTopicsConsumerImpl
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.pulsar.client.impl.ConsumerBase
ConsumerBase.OpBatchReceive<T>
-
Field Summary
Modifier and TypeFieldDescriptionprotected final PulsarClientImpl
static final String
protected final ConcurrentHashMap<String,
Integer> protected URI
protected final String
Fields 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, incomingQueueLock, INITIAL_RECEIVER_QUEUE_SIZE, interceptors, internalPinnedExecutor, listener, maxReceiverQueueSize, MEMORY_THRESHOLD_FOR_RECEIVER_QUEUE_SIZE_EXPANSION, MESSAGE_LISTENER_QUEUE_SIZE_UPDATER, messageListenerQueueSize, pendingBatchReceives, pendingReceives, scaleReceiverQueueHint, schema, subscribeFuture, subscription, unAckedChunkedMessageIdSequenceMap, unAckedMessageTracker
-
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
protected boolean
protected boolean
protected void
static <T> MultiTopicsConsumerImpl<T>
createPartitionedConsumer
(PulsarClientImpl client, ConsumerConfigurationData<T> conf, ExecutorProvider executorProvider, CompletableFuture<Consumer<T>> subscribeFuture, int numPartitions, Schema<T> schema, ConsumerInterceptors<T> interceptors) protected CompletableFuture<Void>
doAcknowledge
(List<MessageId> messageIdList, CommandAck.AckType ackType, Map<String, Long> properties, TransactionImpl txn) protected CompletableFuture<Void>
doAcknowledge
(MessageId messageId, CommandAck.AckType ackType, Map<String, Long> properties, TransactionImpl txnImpl) protected CompletableFuture<Void>
doReconsumeLater
(Message<?> message, CommandAck.AckType ackType, Map<String, String> customProperties, long delayTime, TimeUnit unit) protected org.apache.pulsar.client.impl.HandlerState.State
getAndUpdateState
(UnaryOperator<org.apache.pulsar.client.impl.HandlerState.State> updater) int
long
Deprecated.io.netty.util.Timeout
protected org.apache.pulsar.client.impl.HandlerState.State
getState()
getStats()
boolean
boolean
protected CompletableFuture<Messages<T>>
internalReceive
(long timeout, TimeUnit unit) protected CompletableFuture<Message<T>>
boolean
static boolean
isIllegalMultiTopicsMessageId
(MessageId messageId) protected void
messageProcessed
(Message<?> msg) int
void
negativeAcknowledge
(Message<?> message) void
negativeAcknowledge
(MessageId messageId) int
void
pause()
void
void
redeliverUnacknowledgedMessages
(Set<MessageId> messageIds) Redelivers the given unacknowledged messages.removeConsumerAsync
(String topicName) Remove a consumer for a topic.void
resume()
void
seek
(long timestamp) void
void
seekAsync
(long timestamp) protected void
setCurrentReceiverQueueSize
(int newSize) Update the size of the consumer receive queue.protected void
setRedirectedClusterURI
(String serviceUrl, String serviceUrlTls) protected void
setState
(org.apache.pulsar.client.impl.HandlerState.State s) subscribeAsync
(String topicName, boolean createTopicIfDoesNotExist) Subscribe one more given topic.void
tryAcknowledgeMessage
(Message<T> msg) unsubscribeAsync
(boolean force) unsubscribeAsync
(String topicName) protected void
Methods 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, getLastMessageIds, getNewMessagesImpl, getSubscription, getSubType, getTopic, getTotalIncomingMessages, hasBatchReceiveTimeout, hasEnoughMessagesForBatchReceive, hasNextPendingReceive, hasPendingBatchReceive, initReceiverQueueSize, isSingleMessageAcked, 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, trackUnAckedMsgIfNoListener, triggerBatchReceiveTimeoutTask, tryTriggerListener, unsubscribe, unsubscribe, unsubscribeAsync
-
Field Details
-
DUMMY_TOPIC_NAME_PREFIX
- See Also:
-
partitionedTopics
-
client
-
topic
-
redirectedClusterURI
-
-
Method Details
-
messageProcessed
- Specified by:
messageProcessed
in classConsumerBase<T>
-
minReceiverQueueSize
public int minReceiverQueueSize()- Specified by:
minReceiverQueueSize
in classConsumerBase<T>
-
internalReceive
- Specified by:
internalReceive
in classConsumerBase<T>
- Throws:
PulsarClientException
-
internalReceive
- Specified by:
internalReceive
in classConsumerBase<T>
- Throws:
PulsarClientException
-
internalBatchReceive
- Specified by:
internalBatchReceive
in classConsumerBase<T>
- Throws:
PulsarClientException
-
internalBatchReceiveAsync
- Specified by:
internalBatchReceiveAsync
in classConsumerBase<T>
-
internalReceiveAsync
- Specified by:
internalReceiveAsync
in classConsumerBase<T>
-
doAcknowledge
protected CompletableFuture<Void> doAcknowledge(MessageId messageId, CommandAck.AckType ackType, Map<String, Long> properties, TransactionImpl txnImpl) - Specified by:
doAcknowledge
in classConsumerBase<T>
-
doAcknowledge
protected CompletableFuture<Void> doAcknowledge(List<MessageId> messageIdList, CommandAck.AckType ackType, Map<String, Long> properties, TransactionImpl txn) - Specified by:
doAcknowledge
in classConsumerBase<T>
-
doReconsumeLater
protected CompletableFuture<Void> doReconsumeLater(Message<?> message, CommandAck.AckType ackType, Map<String, String> customProperties, long delayTime, TimeUnit unit) - Specified by:
doReconsumeLater
in classConsumerBase<T>
-
negativeAcknowledge
-
negativeAcknowledge
- Specified by:
negativeAcknowledge
in interfaceConsumer<T>
- Overrides:
negativeAcknowledge
in classConsumerBase<T>
-
unsubscribeAsync
- Specified by:
unsubscribeAsync
in interfaceConsumer<T>
- Specified by:
unsubscribeAsync
in classConsumerBase<T>
-
closeAsync
- Specified by:
closeAsync
in interfaceConsumer<T>
- Specified by:
closeAsync
in classConsumerBase<T>
-
isConnected
public boolean isConnected() -
redeliverUnacknowledgedMessages
public void redeliverUnacknowledgedMessages() -
redeliverUnacknowledgedMessages
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 classConsumerBase<T>
-
updateAutoScaleReceiverQueueHint
protected void updateAutoScaleReceiverQueueHint()- Specified by:
updateAutoScaleReceiverQueueHint
in classConsumerBase<T>
-
completeOpBatchReceive
- Specified by:
completeOpBatchReceive
in classConsumerBase<T>
-
seek
- Throws:
PulsarClientException
-
seek
- Throws:
PulsarClientException
-
seek
- Throws:
PulsarClientException
-
seekAsync
-
seekAsync
-
seekAsync
-
getAvailablePermits
public int getAvailablePermits()- Specified by:
getAvailablePermits
in classConsumerBase<T>
-
hasReachedEndOfTopic
public boolean hasReachedEndOfTopic() -
hasMessageAvailable
- Throws:
PulsarClientException
-
hasMessageAvailableAsync
-
numMessagesInQueue
public int numMessagesInQueue()- Specified by:
numMessagesInQueue
in classConsumerBase<T>
-
getStats
-
getUnAckedMessageTracker
- Overrides:
getUnAckedMessageTracker
in classConsumerBase<T>
-
subscribeAsync
Subscribe one more given topic.- Parameters:
topicName
- topic name without the partition suffix.
-
createPartitionedConsumer
public static <T> MultiTopicsConsumerImpl<T> createPartitionedConsumer(PulsarClientImpl client, ConsumerConfigurationData<T> conf, ExecutorProvider executorProvider, CompletableFuture<Consumer<T>> subscribeFuture, int numPartitions, Schema<T> schema, ConsumerInterceptors<T> interceptors) -
unsubscribeAsync
-
removeConsumerAsync
Remove a consumer for a topic.- Parameters:
topicName
- topic name contains the partition suffix.
-
getPartitionedTopics
-
getPartitions
-
getConsumers
-
pause
public void pause() -
resume
public void resume() -
getLastDisconnectedTimestamp
public long getLastDisconnectedTimestamp() -
getPartitionsAutoUpdateTimeout
public io.netty.util.Timeout getPartitionsAutoUpdateTimeout() -
getLastMessageIdAsync
Deprecated.- Specified by:
getLastMessageIdAsync
in interfaceConsumer<T>
- Specified by:
getLastMessageIdAsync
in classConsumerBase<T>
-
getLastMessageIdsAsync
-
isIllegalMultiTopicsMessageId
-
tryAcknowledgeMessage
-
setCurrentReceiverQueueSize
protected void setCurrentReceiverQueueSize(int newSize) Description copied from class:ConsumerBase
Update the size of the consumer receive queue. SeeConsumerBuilder.receiverQueueSize(int)
.- Specified by:
setCurrentReceiverQueueSize
in classConsumerBase<T>
- Parameters:
newSize
- new size of the receiver queue.
-
setRedirectedClusterURI
protected void setRedirectedClusterURI(String serviceUrl, String serviceUrlTls) throws URISyntaxException - Throws:
URISyntaxException
-
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
-