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
  • Field Details

    • cursor

      protected final org.apache.bookkeeper.mledger.ManagedCursor cursor
  • Constructor Details

    • PersistentReplicator

      public PersistentReplicator(PersistentTopic topic, org.apache.bookkeeper.mledger.ManagedCursor cursor, String localCluster, String remoteCluster, BrokerService brokerService, org.apache.pulsar.client.impl.PulsarClientImpl replicationClient) throws org.apache.pulsar.broker.PulsarServerException
      Throws:
      org.apache.pulsar.broker.PulsarServerException
  • Method Details

    • readEntries

      protected void readEntries(org.apache.pulsar.client.api.Producer<byte[]> producer)
      Specified by:
      readEntries in class AbstractReplicator
    • getReplicatorReadPosition

      protected org.apache.bookkeeper.mledger.Position getReplicatorReadPosition()
      Specified by:
      getReplicatorReadPosition in class AbstractReplicator
    • getNumberOfEntriesInBacklog

      protected long getNumberOfEntriesInBacklog()
      Specified by:
      getNumberOfEntriesInBacklog in class AbstractReplicator
    • disableReplicatorRead

      protected void disableReplicatorRead()
      Specified by:
      disableReplicatorRead in class AbstractReplicator
    • readMoreEntries

      protected void readMoreEntries()
    • readEntriesComplete

      public void readEntriesComplete(List<org.apache.bookkeeper.mledger.Entry> entries, Object ctx)
      Specified by:
      readEntriesComplete in interface org.apache.bookkeeper.mledger.AsyncCallbacks.ReadEntriesCallback
    • updateCursorState

      public void updateCursorState()
    • readEntriesFailed

      public void readEntriesFailed(org.apache.bookkeeper.mledger.ManagedLedgerException exception, Object ctx)
      Specified by:
      readEntriesFailed in interface org.apache.bookkeeper.mledger.AsyncCallbacks.ReadEntriesCallback
    • clearBacklog

      public CompletableFuture<Void> clearBacklog()
    • skipMessages

      public CompletableFuture<Void> skipMessages(int numMessagesToSkip)
    • peekNthMessage

      public CompletableFuture<org.apache.bookkeeper.mledger.Entry> peekNthMessage(int messagePosition)
    • deleteComplete

      public void deleteComplete(Object ctx)
      Specified by:
      deleteComplete in interface org.apache.bookkeeper.mledger.AsyncCallbacks.DeleteCallback
    • deleteFailed

      public void deleteFailed(org.apache.bookkeeper.mledger.ManagedLedgerException exception, Object ctx)
      Specified by:
      deleteFailed in interface org.apache.bookkeeper.mledger.AsyncCallbacks.DeleteCallback
    • updateRates

      public void updateRates()
      Specified by:
      updateRates in interface Replicator
    • getStats

      public org.apache.pulsar.common.policies.data.stats.ReplicatorStatsImpl getStats()
      Specified by:
      getStats in interface Replicator
    • updateMessageTTL

      public void updateMessageTTL(int messageTTLInSeconds)
    • expireMessages

      public boolean expireMessages(int messageTTLInSeconds)
    • expireMessages

      public boolean expireMessages(org.apache.bookkeeper.mledger.Position position)
    • getRateLimiter

      public Optional<DispatchRateLimiter> getRateLimiter()
      Specified by:
      getRateLimiter in interface Replicator
    • initializeDispatchRateLimiterIfNeeded

      public void initializeDispatchRateLimiterIfNeeded()
      Specified by:
      initializeDispatchRateLimiterIfNeeded in interface Replicator
    • updateRateLimiter

      public void updateRateLimiter()
      Specified by:
      updateRateLimiter in interface Replicator
    • disconnect

      public CompletableFuture<Void> disconnect()
      Specified by:
      disconnect in interface Replicator
      Overrides:
      disconnect in class AbstractReplicator
    • disconnect

      public CompletableFuture<Void> disconnect(boolean failIfHasBacklog)
      Specified by:
      disconnect in interface Replicator
      Overrides:
      disconnect in class AbstractReplicator
    • isConnected

      public boolean isConnected()
      Specified by:
      isConnected in interface Replicator
    • getCursor

      public org.apache.bookkeeper.mledger.ManagedCursor getCursor()