public class PersistentDispatcherSingleActiveConsumer extends AbstractDispatcherSingleActiveConsumer implements Dispatcher, AsyncCallbacks.ReadEntriesCallback
| Modifier and Type | Class and Description |
|---|---|
static class |
PersistentDispatcherSingleActiveConsumer.ReadEntriesCtx |
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
havePendingRead |
protected String |
name |
protected int |
readBatchSize |
protected Backoff |
readFailureBackoff |
protected PersistentTopic |
topic |
ACTIVE_CONSUMER_UPDATER, closeFuture, consumers, cursor, FALSE, IS_CLOSED_UPDATER, isFirstRead, isKeyHashRangeFiltered, partitionIndex, stickyKeyConsumerSelector, subscriptionType, topicName, TRUEdispatchThrottlingOnBatchMessageEnabled, entryFilters, filterContext, serviceConfig, subscription| Constructor and Description |
|---|
PersistentDispatcherSingleActiveConsumer(ManagedCursor cursor,
org.apache.pulsar.common.api.proto.CommandSubscribe.SubType subscriptionType,
int partitionIndex,
PersistentTopic topic,
Subscription subscription) |
| Modifier and Type | Method and Description |
|---|---|
void |
addUnAckedMessages(int unAckMessages) |
protected org.apache.commons.lang3.tuple.Pair<Integer,Long> |
calculateToRead(Consumer consumer) |
protected void |
cancelPendingRead() |
boolean |
checkAndUnblockIfStuck()
Checks if dispatcher is stuck and unblocks the dispatch if needed.
|
CompletableFuture<Void> |
close()
mark dispatcher closed to stop new incoming requests and disconnect all consumers.
|
void |
consumerFlow(Consumer consumer,
int additionalNumberOfMessages)
Indicates that this consumer is now ready to receive more messages.
|
protected void |
dispatchEntriesToConsumer(Consumer currentConsumer,
List<Entry> entries,
EntryBatchSizes batchSizes,
EntryBatchIndexesAcks batchIndexesAcks,
SendMessageInfo sendMessageInfo,
long epoch) |
Optional<DispatchRateLimiter> |
getRateLimiter() |
RedeliveryTracker |
getRedeliveryTracker() |
boolean |
initializeDispatchRateLimiterIfNeeded() |
void |
internalReadEntriesComplete(List<Entry> entries,
Object obj) |
protected boolean |
isConsumersExceededOnSubscription()
Determine whether the number of consumers on the subscription reaches the threshold.
|
void |
readEntriesComplete(List<Entry> entries,
Object obj) |
void |
readEntriesFailed(ManagedLedgerException exception,
Object ctx) |
protected void |
readMoreEntries(Consumer consumer) |
void |
redeliverUnacknowledgedMessages(Consumer consumer,
List<PositionImpl> positions) |
void |
redeliverUnacknowledgedMessages(Consumer consumer,
long consumerEpoch) |
protected void |
reScheduleRead() |
protected void |
scheduleReadOnActiveConsumer() |
void |
updateRateLimiter() |
addConsumer, canUnsubscribe, disconnectActiveConsumers, disconnectAllConsumers, getActiveConsumer, getConsumers, getType, isClosed, isConsumerConnected, notifyActiveConsumerChanged, pickAndScheduleActiveConsumer, removeConsumer, reset, resetCloseFuturecomputeReadLimits, filterEntriesForConsumer, filterEntriesForConsumer, isConsumersExceededOnSubscription, peekStickyKey, reachDispatchRateLimit, updateEntryWrapperWithMetadata, updateMessagesToReadclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddConsumer, canUnsubscribe, clearDelayedMessages, cursorIsReset, disconnectActiveConsumers, disconnectAllConsumers, disconnectAllConsumers, getConsumers, getNumberOfDelayedMessages, getType, isClosed, isConsumerConnected, markDeletePositionMoveForward, removeConsumer, reset, resetCloseFuture, trackDelayedDeliveryprotected final PersistentTopic topic
protected final String name
protected volatile boolean havePendingRead
protected volatile int readBatchSize
protected final Backoff readFailureBackoff
public PersistentDispatcherSingleActiveConsumer(ManagedCursor cursor, org.apache.pulsar.common.api.proto.CommandSubscribe.SubType subscriptionType, int partitionIndex, PersistentTopic topic, Subscription subscription)
protected void scheduleReadOnActiveConsumer()
scheduleReadOnActiveConsumer in class AbstractDispatcherSingleActiveConsumerprotected boolean isConsumersExceededOnSubscription()
AbstractBaseDispatcherisConsumersExceededOnSubscription in class AbstractBaseDispatcherprotected void cancelPendingRead()
cancelPendingRead in class AbstractDispatcherSingleActiveConsumerpublic void readEntriesComplete(List<Entry> entries, Object obj)
readEntriesComplete in interface AsyncCallbacks.ReadEntriesCallbackpublic void internalReadEntriesComplete(List<Entry> entries, Object obj)
protected void dispatchEntriesToConsumer(Consumer currentConsumer, List<Entry> entries, EntryBatchSizes batchSizes, EntryBatchIndexesAcks batchIndexesAcks, SendMessageInfo sendMessageInfo, long epoch)
public void consumerFlow(Consumer consumer, int additionalNumberOfMessages)
DispatcherconsumerFlow in interface Dispatcherpublic void redeliverUnacknowledgedMessages(Consumer consumer, long consumerEpoch)
redeliverUnacknowledgedMessages in interface Dispatcherpublic void redeliverUnacknowledgedMessages(Consumer consumer, List<PositionImpl> positions)
redeliverUnacknowledgedMessages in interface Dispatcherprotected void readMoreEntries(Consumer consumer)
readMoreEntries in class AbstractDispatcherSingleActiveConsumerprotected void reScheduleRead()
reScheduleRead in class AbstractBaseDispatcherprotected org.apache.commons.lang3.tuple.Pair<Integer,Long> calculateToRead(Consumer consumer)
public void readEntriesFailed(ManagedLedgerException exception, Object ctx)
readEntriesFailed in interface AsyncCallbacks.ReadEntriesCallbackpublic void addUnAckedMessages(int unAckMessages)
addUnAckedMessages in interface Dispatcherpublic RedeliveryTracker getRedeliveryTracker()
getRedeliveryTracker in interface Dispatcherpublic Optional<DispatchRateLimiter> getRateLimiter()
getRateLimiter in interface Dispatcherpublic void updateRateLimiter()
updateRateLimiter in interface Dispatcherpublic boolean initializeDispatchRateLimiterIfNeeded()
initializeDispatchRateLimiterIfNeeded in interface Dispatcherpublic CompletableFuture<Void> close()
Dispatcherclose in interface Dispatcherclose in class AbstractDispatcherSingleActiveConsumerpublic boolean checkAndUnblockIfStuck()
DispatchercheckAndUnblockIfStuck in interface DispatcherCopyright © 2017–2022 Apache Software Foundation. All rights reserved.