Package org.apache.pulsar.broker.service
Class Producer
java.lang.Object
org.apache.pulsar.broker.service.Producer
Represents a currently connected producer.
-
Constructor Summary
ConstructorsConstructorDescriptionProducer(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 Summary
Modifier and TypeMethodDescriptionbooleancheckAndStartPublish(long producerId, long sequenceId, io.netty.buffer.ByteBuf headersAndPayload, long batchSize) voidclose(boolean removeFromTopic) Close the producer immediately if: a.voidcloseNow(boolean removeFromTopic) 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.ProducerAccessModegetCnx()longgetEpoch()longReturn the sequence id of.longorg.apache.pulsar.common.protocol.schema.SchemaVersionorg.apache.pulsar.common.policies.data.stats.PublisherStatsImplgetStats()getTopic()booleanbooleanbooleanisRemote()booleanisSuccessorTo(Producer other) Method to determine if this producer can replace another producer.booleanvoidpublishMessage(long producerId, long lowestSequenceId, long highestSequenceId, io.netty.buffer.ByteBuf headersAndPayload, long batchSize, boolean isChunked, boolean isMarker) voidpublishMessage(long producerId, long sequenceId, io.netty.buffer.ByteBuf headersAndPayload, long batchSize, boolean isChunked, boolean isMarker) voidpublishTxnMessage(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) voidrecordMessageDrop(int batchSize) toString()voidvoidupdateRates(int numOfMessages, long msgSizeInBytes)
-
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
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
-
getTopic
-
getProducerName
-
getProducerId
public long getProducerId() -
getMetadata
-
toString
-
close
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
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
-
getStats
public org.apache.pulsar.common.policies.data.stats.PublisherStatsImpl getStats() -
isNonPersistentTopic
public boolean isNonPersistentTopic() -
getEpoch
public long getEpoch() -
isUserProvidedProducerName
public boolean isUserProvidedProducerName() -
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
-
getClientAddress
-
isDisconnecting
public boolean isDisconnecting()
-