Class Producer


  • public class Producer
    extends java.lang.Object
    Represents a currently connected producer.
    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean checkAndStartPublish​(long producerId, long sequenceId, io.netty.buffer.ByteBuf headersAndPayload, long batchSize)  
      void checkEncryption()  
      java.util.concurrent.CompletableFuture<java.lang.Void> checkPermissionsAsync()  
      java.util.concurrent.CompletableFuture<java.lang.Void> close​(boolean removeFromTopic)
      Close the producer immediately if: a.
      void closeNow​(boolean removeFromTopic)  
      java.util.concurrent.CompletableFuture<java.lang.Void> disconnect()
      It closes the producer from server-side and sends command to client to disconnect producer from existing connection without closing that connection.
      org.apache.pulsar.common.api.proto.ProducerAccessMode getAccessMode()  
      java.lang.String getClientAddress()  
      TransportCnx getCnx()  
      long getEpoch()  
      long getLastSequenceId()
      Return the sequence id of.
      java.util.Map<java.lang.String,​java.lang.String> getMetadata()  
      long getProducerId()  
      java.lang.String getProducerName()  
      java.lang.String getRemoteCluster()  
      org.apache.pulsar.common.protocol.schema.SchemaVersion getSchemaVersion()  
      org.apache.pulsar.common.policies.data.stats.PublisherStatsImpl getStats()  
      Topic getTopic()  
      java.util.Optional<java.lang.Long> getTopicEpoch()  
      boolean isDisconnecting()  
      boolean isNonPersistentTopic()  
      boolean isRemote()  
      boolean isSuccessorTo​(Producer other)
      Method to determine if this producer can replace another producer.
      boolean isUserProvidedProducerName()  
      void publishMessage​(long producerId, long lowestSequenceId, long highestSequenceId, io.netty.buffer.ByteBuf headersAndPayload, long batchSize, boolean isChunked, boolean isMarker)  
      void publishMessage​(long producerId, long sequenceId, io.netty.buffer.ByteBuf headersAndPayload, long batchSize, boolean isChunked, boolean isMarker)  
      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)  
      void recordMessageDrop​(int batchSize)  
      java.lang.String toString()  
      void updateRates()  
      void updateRates​(int numOfMessages, long msgSizeInBytes)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Producer

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

      • 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
      • getTopic

        public Topic getTopic()
      • getProducerName

        public java.lang.String getProducerName()
      • getProducerId

        public long getProducerId()
      • getMetadata

        public java.util.Map<java.lang.String,​java.lang.String> getMetadata()
      • toString

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

        public java.util.concurrent.CompletableFuture<java.lang.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 java.util.concurrent.CompletableFuture<java.lang.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 java.lang.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 java.util.concurrent.CompletableFuture<java.lang.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 java.util.Optional<java.lang.Long> getTopicEpoch()
      • getClientAddress

        public java.lang.String getClientAddress()
      • isDisconnecting

        public boolean isDisconnecting()