Class PersistentReplicator
- java.lang.Object
-
- org.apache.pulsar.broker.service.AbstractReplicator
-
- org.apache.pulsar.broker.service.persistent.PersistentReplicator
-
- All Implemented Interfaces:
org.apache.bookkeeper.mledger.AsyncCallbacks.DeleteCallback,org.apache.bookkeeper.mledger.AsyncCallbacks.ReadEntriesCallback,Replicator
public class PersistentReplicator extends AbstractReplicator implements Replicator, org.apache.bookkeeper.mledger.AsyncCallbacks.ReadEntriesCallback, org.apache.bookkeeper.mledger.AsyncCallbacks.DeleteCallback
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.pulsar.broker.service.AbstractReplicator
AbstractReplicator.State
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.bookkeeper.mledger.ManagedCursorcursor-
Fields inherited from class org.apache.pulsar.broker.service.AbstractReplicator
backOff, brokerService, client, localCluster, producer, producerBuilder, producerQueueSize, remoteCluster, REPL_PRODUCER_NAME_DELIMITER, replicationClient, replicatorPrefix, STATE_UPDATER, topicName
-
-
Constructor Summary
Constructors Constructor Description PersistentReplicator(PersistentTopic topic, org.apache.bookkeeper.mledger.ManagedCursor cursor, java.lang.String localCluster, java.lang.String remoteCluster, BrokerService brokerService, org.apache.pulsar.client.impl.PulsarClientImpl replicationClient)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.concurrent.CompletableFuture<java.lang.Void>clearBacklog()voiddeleteComplete(java.lang.Object ctx)voiddeleteFailed(org.apache.bookkeeper.mledger.ManagedLedgerException exception, java.lang.Object ctx)protected voiddisableReplicatorRead()java.util.concurrent.CompletableFuture<java.lang.Void>disconnect()java.util.concurrent.CompletableFuture<java.lang.Void>disconnect(boolean failIfHasBacklog)booleanexpireMessages(int messageTTLInSeconds)booleanexpireMessages(org.apache.bookkeeper.mledger.Position position)protected longgetNumberOfEntriesInBacklog()java.util.Optional<DispatchRateLimiter>getRateLimiter()protected org.apache.bookkeeper.mledger.PositiongetReplicatorReadPosition()org.apache.pulsar.common.policies.data.stats.ReplicatorStatsImplgetStats()voidinitializeDispatchRateLimiterIfNeeded(java.util.Optional<org.apache.pulsar.common.policies.data.Policies> policies)booleanisConnected()java.util.concurrent.CompletableFuture<org.apache.bookkeeper.mledger.Entry>peekNthMessage(int messagePosition)protected voidreadEntries(org.apache.pulsar.client.api.Producer<byte[]> producer)voidreadEntriesComplete(java.util.List<org.apache.bookkeeper.mledger.Entry> entries, java.lang.Object ctx)voidreadEntriesFailed(org.apache.bookkeeper.mledger.ManagedLedgerException exception, java.lang.Object ctx)protected voidreadMoreEntries()java.util.concurrent.CompletableFuture<java.lang.Void>skipMessages(int numMessagesToSkip)voidupdateCursorState()voidupdateMessageTTL(int messageTTLInSeconds)voidupdateRates()-
Methods inherited from class org.apache.pulsar.broker.service.AbstractReplicator
closeProducerAsync, getRemoteCluster, getRemoteCluster, getReplicatorName, isWritable, remove, startProducer, validatePartitionedTopicAsync
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.pulsar.broker.service.Replicator
getRemoteCluster, startProducer
-
-
-
-
Constructor Detail
-
PersistentReplicator
public PersistentReplicator(PersistentTopic topic, org.apache.bookkeeper.mledger.ManagedCursor cursor, java.lang.String localCluster, java.lang.String remoteCluster, BrokerService brokerService, org.apache.pulsar.client.impl.PulsarClientImpl replicationClient) throws org.apache.pulsar.broker.PulsarServerException
- Throws:
org.apache.pulsar.broker.PulsarServerException
-
-
Method Detail
-
readEntries
protected void readEntries(org.apache.pulsar.client.api.Producer<byte[]> producer)
- Specified by:
readEntriesin classAbstractReplicator
-
getReplicatorReadPosition
protected org.apache.bookkeeper.mledger.Position getReplicatorReadPosition()
- Specified by:
getReplicatorReadPositionin classAbstractReplicator
-
getNumberOfEntriesInBacklog
protected long getNumberOfEntriesInBacklog()
- Specified by:
getNumberOfEntriesInBacklogin classAbstractReplicator
-
disableReplicatorRead
protected void disableReplicatorRead()
- Specified by:
disableReplicatorReadin classAbstractReplicator
-
readMoreEntries
protected void readMoreEntries()
-
readEntriesComplete
public void readEntriesComplete(java.util.List<org.apache.bookkeeper.mledger.Entry> entries, java.lang.Object ctx)- Specified by:
readEntriesCompletein interfaceorg.apache.bookkeeper.mledger.AsyncCallbacks.ReadEntriesCallback
-
updateCursorState
public void updateCursorState()
-
readEntriesFailed
public void readEntriesFailed(org.apache.bookkeeper.mledger.ManagedLedgerException exception, java.lang.Object ctx)- Specified by:
readEntriesFailedin interfaceorg.apache.bookkeeper.mledger.AsyncCallbacks.ReadEntriesCallback
-
clearBacklog
public java.util.concurrent.CompletableFuture<java.lang.Void> clearBacklog()
-
skipMessages
public java.util.concurrent.CompletableFuture<java.lang.Void> skipMessages(int numMessagesToSkip)
-
peekNthMessage
public java.util.concurrent.CompletableFuture<org.apache.bookkeeper.mledger.Entry> peekNthMessage(int messagePosition)
-
deleteComplete
public void deleteComplete(java.lang.Object ctx)
- Specified by:
deleteCompletein interfaceorg.apache.bookkeeper.mledger.AsyncCallbacks.DeleteCallback
-
deleteFailed
public void deleteFailed(org.apache.bookkeeper.mledger.ManagedLedgerException exception, java.lang.Object ctx)- Specified by:
deleteFailedin interfaceorg.apache.bookkeeper.mledger.AsyncCallbacks.DeleteCallback
-
updateRates
public void updateRates()
- Specified by:
updateRatesin interfaceReplicator
-
getStats
public org.apache.pulsar.common.policies.data.stats.ReplicatorStatsImpl getStats()
- Specified by:
getStatsin interfaceReplicator
-
updateMessageTTL
public void updateMessageTTL(int messageTTLInSeconds)
-
expireMessages
public boolean expireMessages(int messageTTLInSeconds)
-
expireMessages
public boolean expireMessages(org.apache.bookkeeper.mledger.Position position)
-
getRateLimiter
public java.util.Optional<DispatchRateLimiter> getRateLimiter()
- Specified by:
getRateLimiterin interfaceReplicator
-
initializeDispatchRateLimiterIfNeeded
public void initializeDispatchRateLimiterIfNeeded(java.util.Optional<org.apache.pulsar.common.policies.data.Policies> policies)
- Specified by:
initializeDispatchRateLimiterIfNeededin interfaceReplicator
-
disconnect
public java.util.concurrent.CompletableFuture<java.lang.Void> disconnect()
- Specified by:
disconnectin interfaceReplicator- Overrides:
disconnectin classAbstractReplicator
-
disconnect
public java.util.concurrent.CompletableFuture<java.lang.Void> disconnect(boolean failIfHasBacklog)
- Specified by:
disconnectin interfaceReplicator- Overrides:
disconnectin classAbstractReplicator
-
isConnected
public boolean isConnected()
- Specified by:
isConnectedin interfaceReplicator
-
-