Class Producer

java.lang.Object
org.apache.pulsar.broker.service.Producer

public class Producer extends Object
Represents a currently connected producer.
  • Constructor Details

    • Producer

      public Producer(Topic topic, TransportCnx cnx, long producerId, String producerName, String appId, boolean isEncrypted, Map<String,String> metadata, org.apache.pulsar.common.protocol.schema.SchemaVersion schemaVersion, long epoch, boolean userProvidedProducerName, org.apache.pulsar.common.api.proto.ProducerAccessMode accessMode, Optional<Long> topicEpoch, boolean supportsPartialProducer)
  • Method Details

    • isSuccessorTo

      public boolean isSuccessorTo(Producer other)
      Method to determine if this producer can replace another producer.
      Parameters:
      other - - producer to compare to this one
      Returns:
      true if this producer is a subsequent instantiation of the same logical producer. Otherwise, false.
    • publishMessage

      public void publishMessage(long producerId, long sequenceId, io.netty.buffer.ByteBuf headersAndPayload, long batchSize, boolean isChunked, boolean isMarker)
    • publishMessage

      public void publishMessage(long producerId, long lowestSequenceId, long highestSequenceId, io.netty.buffer.ByteBuf headersAndPayload, long batchSize, boolean isChunked, boolean isMarker)
    • checkAndStartPublish

      public boolean checkAndStartPublish(long producerId, long sequenceId, io.netty.buffer.ByteBuf headersAndPayload, long batchSize)
    • recordMessageDrop

      public void recordMessageDrop(int batchSize)
    • getLastSequenceId

      public long getLastSequenceId()
      Return the sequence id of.
      Returns:
      the sequence id
    • getCnx

      public TransportCnx getCnx()
    • getTopic

      public Topic getTopic()
    • getProducerName

      public String getProducerName()
    • getProducerId

      public long getProducerId()
    • getMetadata

      public Map<String,String> getMetadata()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • close

      public CompletableFuture<Void> close(boolean removeFromTopic)
      Close the producer immediately if: a. the connection is dropped b. it's a graceful close and no pending publish acks are left else wait for pending publish acks
      Returns:
      completable future indicate completion of close
    • closeNow

      public void closeNow(boolean removeFromTopic)
    • disconnect

      public CompletableFuture<Void> disconnect()
      It closes the producer from server-side and sends command to client to disconnect producer from existing connection without closing that connection.
      Returns:
      Completable future indicating completion of producer close
    • updateRates

      public void updateRates()
    • updateRates

      public void updateRates(int numOfMessages, long msgSizeInBytes)
    • isRemote

      public boolean isRemote()
    • getRemoteCluster

      public String getRemoteCluster()
    • getStats

      public org.apache.pulsar.common.policies.data.stats.PublisherStatsImpl getStats()
    • isNonPersistentTopic

      public boolean isNonPersistentTopic()
    • getEpoch

      public long getEpoch()
    • isUserProvidedProducerName

      public boolean isUserProvidedProducerName()
    • checkPermissionsAsync

      public CompletableFuture<Void> checkPermissionsAsync()
    • checkEncryption

      public void checkEncryption()
    • publishTxnMessage

      public void publishTxnMessage(org.apache.pulsar.client.api.transaction.TxnID txnID, long producerId, long sequenceId, long highSequenceId, io.netty.buffer.ByteBuf headersAndPayload, long batchSize, boolean isChunked, boolean isMarker)
    • getSchemaVersion

      public org.apache.pulsar.common.protocol.schema.SchemaVersion getSchemaVersion()
    • getAccessMode

      public org.apache.pulsar.common.api.proto.ProducerAccessMode getAccessMode()
    • getTopicEpoch

      public Optional<Long> getTopicEpoch()
    • getClientAddress

      public String getClientAddress()
    • isDisconnecting

      public boolean isDisconnecting()