Class PersistentReplicator
java.lang.Object
org.apache.pulsar.broker.service.AbstractReplicator
org.apache.pulsar.broker.service.persistent.PersistentReplicator
- All Implemented Interfaces:
AsyncCallbacks.DeleteCallback,AsyncCallbacks.ReadEntriesCallback,MessageExpirer,Replicator
- Direct Known Subclasses:
GeoPersistentReplicator,ShadowReplicator
public abstract class PersistentReplicator
extends AbstractReplicator
implements Replicator, AsyncCallbacks.ReadEntriesCallback, AsyncCallbacks.DeleteCallback, MessageExpirer
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static final classNested classes/interfaces inherited from class org.apache.pulsar.broker.service.AbstractReplicator
AbstractReplicator.State -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ManagedCursorprotected Optional<DispatchRateLimiter>protected booleanprotected intprotected final org.apache.pulsar.common.stats.Rateprotected final org.apache.pulsar.common.stats.Rateprotected static final AtomicIntegerFieldUpdater<PersistentReplicator>protected final org.apache.pulsar.common.policies.data.stats.ReplicatorStatsImplprotected final PersistentTopicFields inherited from class org.apache.pulsar.broker.service.AbstractReplicator
backOff, brokerService, client, localCluster, localTopic, localTopicName, producer, producerBuilder, producerQueueSize, remoteCluster, remoteTopicName, REPL_PRODUCER_NAME_DELIMITER, replicationClient, replicatorId, replicatorPrefix, state, STATE_UPDATER -
Constructor Summary
ConstructorsConstructorDescriptionPersistentReplicator(String localCluster, PersistentTopic localTopic, ManagedCursor cursor, String remoteCluster, String remoteTopic, BrokerService brokerService, PulsarClientImpl replicationClient) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcheckReplicatedSubscriptionMarker(Position position, MessageImpl<?> msg, io.netty.buffer.ByteBuf payload) org.apache.pulsar.common.policies.data.stats.ReplicatorStatsImplvoiddeleteComplete(Object ctx) voiddeleteFailed(ManagedLedgerException exception, Object ctx) protected voidprotected voidbooleanexpireMessages(int messageTTLInSeconds) booleanexpireMessages(Position position) longlongprotected Positionprotected CompletableFuture<org.apache.pulsar.common.schema.SchemaInfo>getSchemaInfo(MessageImpl msg) voidpeekNthMessage(int messagePosition) voidreadEntriesComplete(List<Entry> entries, Object ctx) voidreadEntriesFailed(ManagedLedgerException exception, Object ctx) protected voidprotected abstract booleanreplicateEntries(List<Entry> entries) protected voidsetProducerAndTriggerReadEntries(org.apache.pulsar.client.api.Producer<byte[]> producer) skipMessages(int numMessagesToSkip) voidvoidupdateMessageTTL(int messageTTLInSeconds) voidvoidMethods inherited from class org.apache.pulsar.broker.service.AbstractReplicator
closeProducerAsync, compareSetAndGetState, delayStartProducerAfterDisconnected, disconnect, doCloseProducerAsync, getAttributes, getProducerName, getRemoteCluster, getRemoteCluster, getReplicationDelayMs, getReplicatorName, getState, isConnected, isLocalTopicActive, isTerminated, isWritable, prepareCreateProducer, remove, scheduleCheckTopicActiveAndStartProducer, startProducer, terminate, tryChangeStatusToTerminating, validatePartitionedTopicAsyncMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.pulsar.broker.service.Replicator
disconnect, getLocalTopic, getRemoteCluster, getStats, isConnected, isTerminated, startProducer, terminate
-
Field Details
-
topic
-
cursor
-
dispatchRateLimiter
-
PENDING_MESSAGES_UPDATER
-
msgOut
protected final org.apache.pulsar.common.stats.Rate msgOut -
msgExpired
protected final org.apache.pulsar.common.stats.Rate msgExpired -
messageTTLInSeconds
protected int messageTTLInSeconds -
stats
protected final org.apache.pulsar.common.policies.data.stats.ReplicatorStatsImpl stats -
fetchSchemaInProgress
protected volatile boolean fetchSchemaInProgress
-
-
Constructor Details
-
PersistentReplicator
public PersistentReplicator(String localCluster, PersistentTopic localTopic, ManagedCursor cursor, String remoteCluster, String remoteTopic, BrokerService brokerService, PulsarClientImpl replicationClient) throws PulsarServerException - Throws:
PulsarServerException
-
-
Method Details
-
setProducerAndTriggerReadEntries
protected void setProducerAndTriggerReadEntries(org.apache.pulsar.client.api.Producer<byte[]> producer) - Specified by:
setProducerAndTriggerReadEntriesin classAbstractReplicator
-
getReplicatorReadPosition
- Specified by:
getReplicatorReadPositionin classAbstractReplicator
-
getNumberOfEntriesInBacklog
public long getNumberOfEntriesInBacklog()- Specified by:
getNumberOfEntriesInBacklogin interfaceReplicator- Specified by:
getNumberOfEntriesInBacklogin classAbstractReplicator
-
getMessageExpiredCount
public long getMessageExpiredCount() -
disableReplicatorRead
protected void disableReplicatorRead()- Specified by:
disableReplicatorReadin classAbstractReplicator
-
readMoreEntries
protected void readMoreEntries() -
readEntriesComplete
- Specified by:
readEntriesCompletein interfaceAsyncCallbacks.ReadEntriesCallback
-
replicateEntries
-
getSchemaInfo
protected CompletableFuture<org.apache.pulsar.common.schema.SchemaInfo> getSchemaInfo(MessageImpl msg) throws ExecutionException - Throws:
ExecutionException
-
updateCursorState
public void updateCursorState() -
readEntriesFailed
- Specified by:
readEntriesFailedin interfaceAsyncCallbacks.ReadEntriesCallback
-
clearBacklog
-
skipMessages
-
peekNthMessage
-
deleteComplete
- Specified by:
deleteCompletein interfaceAsyncCallbacks.DeleteCallback
-
deleteFailed
- Specified by:
deleteFailedin interfaceAsyncCallbacks.DeleteCallback
-
updateRates
public void updateRates()- Specified by:
updateRatesin interfaceReplicator
-
computeStats
public org.apache.pulsar.common.policies.data.stats.ReplicatorStatsImpl computeStats()- Specified by:
computeStatsin interfaceReplicator
-
updateMessageTTL
public void updateMessageTTL(int messageTTLInSeconds) -
expireMessages
public boolean expireMessages(int messageTTLInSeconds) - Specified by:
expireMessagesin interfaceMessageExpirer
-
expireMessages
- Specified by:
expireMessagesin interfaceMessageExpirer
-
getRateLimiter
- Specified by:
getRateLimiterin interfaceReplicator
-
initializeDispatchRateLimiterIfNeeded
public void initializeDispatchRateLimiterIfNeeded()- Specified by:
initializeDispatchRateLimiterIfNeededin interfaceReplicator
-
updateRateLimiter
public void updateRateLimiter()- Specified by:
updateRateLimiterin interfaceReplicator
-
checkReplicatedSubscriptionMarker
protected void checkReplicatedSubscriptionMarker(Position position, MessageImpl<?> msg, io.netty.buffer.ByteBuf payload) -
doReleaseResources
protected void doReleaseResources()- Overrides:
doReleaseResourcesin classAbstractReplicator
-
getCursor
-