Class MutableReactiveMessageSenderSpec
java.lang.Object
org.apache.pulsar.reactive.client.api.MutableReactiveMessageSenderSpec
- All Implemented Interfaces:
ReactiveMessageSenderSpec
Mutable spec for a
ReactiveMessageSender.-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a default MutableReactiveMessageSenderSpec.Constructs a MutableReactiveMessageSenderSpec from anotherReactiveMessageSenderSpec. -
Method Summary
Modifier and TypeMethodDescriptionvoidapplySpec(ReactiveMessageSenderSpec senderSpec) Updates this spec from the defined values of another spec.org.apache.pulsar.client.api.ProducerAccessModeGets the type of access mode that the producer requires on the topic.Gets whether partitioned producer will automatically discover new partitions at runtime.Gets the interval of partitions updates if autoUpdatePartitions is enabled.org.apache.pulsar.client.api.BatcherBuilderGets the batcher builder of the producer.Gets whether automatic batching of messages is enabled for the producer.Gets the maximum number of bytes permitted in a batch.Gets the maximum number of messages permitted in a batch.Gets the time period within which the messages sent will be batched.Gets whether chunking of messages is enabled.org.apache.pulsar.client.api.CompressionTypeGets the compression type for the producer.org.apache.pulsar.client.api.ProducerCryptoFailureActionGets the action the producer will take in case of encryption failures.org.apache.pulsar.client.api.CryptoKeyReaderGets the key reader to be used to encrypt the message payloads.Gets the public encryption key names, used by producer to encrypt the data key.org.apache.pulsar.client.api.HashingSchemeGets the hashing function determining the partition where to publish a particular message on partitioned topics.Gets the baseline for the sequence ids for messages published by the producer.Gets whether producers register and connect immediately to the owner broker of each partition or start lazily on demand.Gets the maximum size of the queue holding the messages pending to receive an acknowledgment from the broker.Gets the maximum number of pending messages across all the partitions.org.apache.pulsar.client.api.MessageRouterGets the custom message router.org.apache.pulsar.client.api.MessageRoutingModeGets the message routing logic for producers on partitioned topics.Gets whether the multiple schema mode is enabled.Gets the name of the producer.Gets the properties of the producer.Gets the partition switch frequency while batching of messages is enabled and using round-robin routing mode for non-keyed message.Gets the send timeout.Gets the topic to publish on.voidsetAccessMode(org.apache.pulsar.client.api.ProducerAccessMode accessMode) Sets the type of access mode that the producer requires on the topic.voidsetAutoUpdatePartitions(Boolean autoUpdatePartitions) Sets whether partitioned producer will automatically discover new partitions at runtime.voidsetAutoUpdatePartitionsInterval(Duration autoUpdatePartitionsInterval) Sets the interval of partitions updates if autoUpdatePartitions is enabled.voidsetBatcherBuilder(org.apache.pulsar.client.api.BatcherBuilder batcherBuilder) Sets the batcher builder of the producer.voidsetBatchingEnabled(Boolean batchingEnabled) Sets whether automatic batching of messages is enabled for the producer.voidsetBatchingMaxBytes(Integer batchingMaxBytes) Sets the maximum number of bytes permitted in a batch.voidsetBatchingMaxMessages(Integer batchingMaxMessages) Sets the maximum number of messages permitted in a batch.voidsetBatchingMaxPublishDelay(Duration batchingMaxPublishDelay) Sets the time period within which the messages sent will be batched.voidsetChunkingEnabled(Boolean chunkingEnabled) Sets whether chunking of messages is enabled.voidsetCompressionType(org.apache.pulsar.client.api.CompressionType compressionType) Sets the compression type for the producer.voidsetCryptoFailureAction(org.apache.pulsar.client.api.ProducerCryptoFailureAction cryptoFailureAction) Sets the action the producer will take in case of encryption failures.voidsetCryptoKeyReader(org.apache.pulsar.client.api.CryptoKeyReader cryptoKeyReader) Sets the key reader to be used to encrypt the message payloads.voidsetEncryptionKeys(Set<String> encryptionKeys) Sets the public encryption key names, used by producer to encrypt the data key.voidsetHashingScheme(org.apache.pulsar.client.api.HashingScheme hashingScheme) Sets the hashing function determining the partition where to publish a particular message on partitioned topics.voidsetInitialSequenceId(Long initialSequenceId) Sets the baseline for the sequence ids for messages published by the producer.voidsetLazyStartPartitionedProducers(Boolean lazyStartPartitionedProducers) Sets whether producers register and connect immediately to the owner broker of each partition or start lazily on demand.voidsetMaxPendingMessages(Integer maxPendingMessages) Sets the maximum size of the queue holding the messages pending to receive an acknowledgment from the broker.voidsetMaxPendingMessagesAcrossPartitions(Integer maxPendingMessagesAcrossPartitions) Sets the maximum number of pending messages across all the partitions.voidsetMessageRouter(org.apache.pulsar.client.api.MessageRouter messageRouter) Sets a custom message router.voidsetMessageRoutingMode(org.apache.pulsar.client.api.MessageRoutingMode messageRoutingMode) Sets the message routing logic for producers on partitioned topics.voidsetMultiSchema(Boolean multiSchema) Sets whether the multiple schema mode is enabled.voidsetProducerName(String producerName) Sets the name of the producer.voidsetProperties(Map<String, String> properties) Sets the properties of the producer.voidsetRoundRobinRouterBatchingPartitionSwitchFrequency(Integer roundRobinRouterBatchingPartitionSwitchFrequency) Sets the partition switch frequency while batching of messages is enabled and using round-robin routing mode for non-keyed message.voidsetSendTimeout(Duration sendTimeout) Sets the send timeout.voidsetTopicName(String topicName) Sets the topic to publish on.
-
Constructor Details
-
MutableReactiveMessageSenderSpec
public MutableReactiveMessageSenderSpec()Constructs a default MutableReactiveMessageSenderSpec. -
MutableReactiveMessageSenderSpec
Constructs a MutableReactiveMessageSenderSpec from anotherReactiveMessageSenderSpec.- Parameters:
senderSpec- the spec to construct from
-
-
Method Details
-
getTopicName
Description copied from interface:ReactiveMessageSenderSpecGets the topic to publish on.- Specified by:
getTopicNamein interfaceReactiveMessageSenderSpec- Returns:
- the topic
- See Also:
-
ProducerBuilder.topic(java.lang.String)
-
setTopicName
Sets the topic to publish on.- Parameters:
topicName- the topic
-
getProducerName
Description copied from interface:ReactiveMessageSenderSpecGets the name of the producer.- Specified by:
getProducerNamein interfaceReactiveMessageSenderSpec- Returns:
- the producer name
- See Also:
-
ProducerBuilder.producerName(java.lang.String)
-
setProducerName
Sets the name of the producer.- Parameters:
producerName- the producer name
-
getSendTimeout
Description copied from interface:ReactiveMessageSenderSpecGets the send timeout.- Specified by:
getSendTimeoutin interfaceReactiveMessageSenderSpec- Returns:
- the send timeout
- See Also:
-
ProducerBuilder.sendTimeout(int, java.util.concurrent.TimeUnit)
-
setSendTimeout
Sets the send timeout.- Parameters:
sendTimeout- the send timeout
-
getMaxPendingMessages
Description copied from interface:ReactiveMessageSenderSpecGets the maximum size of the queue holding the messages pending to receive an acknowledgment from the broker.- Specified by:
getMaxPendingMessagesin interfaceReactiveMessageSenderSpec- Returns:
- the maximum pending messages
- See Also:
-
ProducerBuilder.maxPendingMessages(int)
-
setMaxPendingMessages
Sets the maximum size of the queue holding the messages pending to receive an acknowledgment from the broker.- Parameters:
maxPendingMessages- the maximum pending messages
-
getMaxPendingMessagesAcrossPartitions
Description copied from interface:ReactiveMessageSenderSpecGets the maximum number of pending messages across all the partitions.- Specified by:
getMaxPendingMessagesAcrossPartitionsin interfaceReactiveMessageSenderSpec- Returns:
- the maximum number of pending messages across all the partitions
- See Also:
-
ProducerBuilder.maxPendingMessagesAcrossPartitions(int)
-
setMaxPendingMessagesAcrossPartitions
Sets the maximum number of pending messages across all the partitions.- Parameters:
maxPendingMessagesAcrossPartitions- the maximum number of pending messages across all the partitions
-
getMessageRoutingMode
public org.apache.pulsar.client.api.MessageRoutingMode getMessageRoutingMode()Description copied from interface:ReactiveMessageSenderSpecGets the message routing logic for producers on partitioned topics.- Specified by:
getMessageRoutingModein interfaceReactiveMessageSenderSpec- Returns:
- the message routing mode
- See Also:
-
ProducerBuilder.messageRoutingMode(org.apache.pulsar.client.api.MessageRoutingMode)
-
setMessageRoutingMode
public void setMessageRoutingMode(org.apache.pulsar.client.api.MessageRoutingMode messageRoutingMode) Sets the message routing logic for producers on partitioned topics.- Parameters:
messageRoutingMode- the message routing mode
-
getHashingScheme
public org.apache.pulsar.client.api.HashingScheme getHashingScheme()Description copied from interface:ReactiveMessageSenderSpecGets the hashing function determining the partition where to publish a particular message on partitioned topics.- Specified by:
getHashingSchemein interfaceReactiveMessageSenderSpec- Returns:
- the hashing scheme
- See Also:
-
ProducerBuilder.hashingScheme(org.apache.pulsar.client.api.HashingScheme)
-
setHashingScheme
public void setHashingScheme(org.apache.pulsar.client.api.HashingScheme hashingScheme) Sets the hashing function determining the partition where to publish a particular message on partitioned topics.- Parameters:
hashingScheme- the hashing scheme
-
getCryptoFailureAction
public org.apache.pulsar.client.api.ProducerCryptoFailureAction getCryptoFailureAction()Description copied from interface:ReactiveMessageSenderSpecGets the action the producer will take in case of encryption failures.- Specified by:
getCryptoFailureActionin interfaceReactiveMessageSenderSpec- Returns:
- the action the producer will take in case of encryption failures
- See Also:
-
ProducerBuilder.cryptoFailureAction(org.apache.pulsar.client.api.ProducerCryptoFailureAction)
-
setCryptoFailureAction
public void setCryptoFailureAction(org.apache.pulsar.client.api.ProducerCryptoFailureAction cryptoFailureAction) Sets the action the producer will take in case of encryption failures.- Parameters:
cryptoFailureAction- the action the producer will take in case of encryption failures
-
getMessageRouter
public org.apache.pulsar.client.api.MessageRouter getMessageRouter()Description copied from interface:ReactiveMessageSenderSpecGets the custom message router.- Specified by:
getMessageRouterin interfaceReactiveMessageSenderSpec- Returns:
- the message router
- See Also:
-
ProducerBuilder.messageRouter(org.apache.pulsar.client.api.MessageRouter)
-
setMessageRouter
public void setMessageRouter(org.apache.pulsar.client.api.MessageRouter messageRouter) Sets a custom message router.- Parameters:
messageRouter- the message router
-
getBatchingMaxPublishDelay
Description copied from interface:ReactiveMessageSenderSpecGets the time period within which the messages sent will be batched.- Specified by:
getBatchingMaxPublishDelayin interfaceReactiveMessageSenderSpec- Returns:
- the batch delay
- See Also:
-
ProducerBuilder.batchingMaxPublishDelay(long, java.util.concurrent.TimeUnit)
-
setBatchingMaxPublishDelay
Sets the time period within which the messages sent will be batched.- Parameters:
batchingMaxPublishDelay- the batch delay
-
getRoundRobinRouterBatchingPartitionSwitchFrequency
Description copied from interface:ReactiveMessageSenderSpecGets the partition switch frequency while batching of messages is enabled and using round-robin routing mode for non-keyed message.- Specified by:
getRoundRobinRouterBatchingPartitionSwitchFrequencyin interfaceReactiveMessageSenderSpec- Returns:
- the frequency of partition switch
- See Also:
-
ProducerBuilder.roundRobinRouterBatchingPartitionSwitchFrequency(int)
-
setRoundRobinRouterBatchingPartitionSwitchFrequency
public void setRoundRobinRouterBatchingPartitionSwitchFrequency(Integer roundRobinRouterBatchingPartitionSwitchFrequency) Sets the partition switch frequency while batching of messages is enabled and using round-robin routing mode for non-keyed message.- Parameters:
roundRobinRouterBatchingPartitionSwitchFrequency- the frequency of partition switch
-
getBatchingMaxMessages
Description copied from interface:ReactiveMessageSenderSpecGets the maximum number of messages permitted in a batch.- Specified by:
getBatchingMaxMessagesin interfaceReactiveMessageSenderSpec- Returns:
- the maximum number of messages in a batch
- See Also:
-
ProducerBuilder.batchingMaxMessages(int)
-
setBatchingMaxMessages
Sets the maximum number of messages permitted in a batch.- Parameters:
batchingMaxMessages- the maximum number of messages in a batch
-
getBatchingMaxBytes
Description copied from interface:ReactiveMessageSenderSpecGets the maximum number of bytes permitted in a batch.- Specified by:
getBatchingMaxBytesin interfaceReactiveMessageSenderSpec- Returns:
- the maximum bytes of messages in a batch
- See Also:
-
ProducerBuilder.batchingMaxBytes(int)
-
setBatchingMaxBytes
Sets the maximum number of bytes permitted in a batch.- Parameters:
batchingMaxBytes- the maximum number of bytes in a batch
-
getBatchingEnabled
Description copied from interface:ReactiveMessageSenderSpecGets whether automatic batching of messages is enabled for the producer.- Specified by:
getBatchingEnabledin interfaceReactiveMessageSenderSpec- Returns:
- true if batching is enabled
- See Also:
-
ProducerBuilder.enableBatching(boolean)
-
setBatchingEnabled
Sets whether automatic batching of messages is enabled for the producer.- Parameters:
batchingEnabled- true to enable batching
-
getBatcherBuilder
public org.apache.pulsar.client.api.BatcherBuilder getBatcherBuilder()Description copied from interface:ReactiveMessageSenderSpecGets the batcher builder of the producer.- Specified by:
getBatcherBuilderin interfaceReactiveMessageSenderSpec- Returns:
- the batcher builder
- See Also:
-
ProducerBuilder.batcherBuilder(org.apache.pulsar.client.api.BatcherBuilder)
-
setBatcherBuilder
public void setBatcherBuilder(org.apache.pulsar.client.api.BatcherBuilder batcherBuilder) Sets the batcher builder of the producer.- Parameters:
batcherBuilder- the batcher builder
-
getChunkingEnabled
Description copied from interface:ReactiveMessageSenderSpecGets whether chunking of messages is enabled.- Specified by:
getChunkingEnabledin interfaceReactiveMessageSenderSpec- Returns:
- true if message chunking is enabled
- See Also:
-
ProducerBuilder.enableChunking(boolean)
-
setChunkingEnabled
Sets whether chunking of messages is enabled.- Parameters:
chunkingEnabled- true to enable message chunking
-
getCryptoKeyReader
public org.apache.pulsar.client.api.CryptoKeyReader getCryptoKeyReader()Description copied from interface:ReactiveMessageSenderSpecGets the key reader to be used to encrypt the message payloads.- Specified by:
getCryptoKeyReaderin interfaceReactiveMessageSenderSpec- Returns:
- the key reader to be used to encrypt the message payloads
- See Also:
-
ProducerBuilder.cryptoKeyReader(org.apache.pulsar.client.api.CryptoKeyReader)
-
setCryptoKeyReader
public void setCryptoKeyReader(org.apache.pulsar.client.api.CryptoKeyReader cryptoKeyReader) Sets the key reader to be used to encrypt the message payloads.- Parameters:
cryptoKeyReader- the key reader to be used to encrypt the message payloads
-
getEncryptionKeys
Description copied from interface:ReactiveMessageSenderSpecGets the public encryption key names, used by producer to encrypt the data key.- Specified by:
getEncryptionKeysin interfaceReactiveMessageSenderSpec- Returns:
- the public encryption key names
- See Also:
-
ProducerBuilder.addEncryptionKey(java.lang.String)
-
setEncryptionKeys
Sets the public encryption key names, used by producer to encrypt the data key.- Parameters:
encryptionKeys- the public encryption key names
-
getCompressionType
public org.apache.pulsar.client.api.CompressionType getCompressionType()Description copied from interface:ReactiveMessageSenderSpecGets the compression type for the producer.- Specified by:
getCompressionTypein interfaceReactiveMessageSenderSpec- Returns:
- the compression type
- See Also:
-
ProducerBuilder.compressionType(org.apache.pulsar.client.api.CompressionType)
-
setCompressionType
public void setCompressionType(org.apache.pulsar.client.api.CompressionType compressionType) Sets the compression type for the producer.- Parameters:
compressionType- the compression type
-
getInitialSequenceId
Description copied from interface:ReactiveMessageSenderSpecGets the baseline for the sequence ids for messages published by the producer.- Specified by:
getInitialSequenceIdin interfaceReactiveMessageSenderSpec- Returns:
- the initial sequence id
- See Also:
-
ProducerBuilder.initialSequenceId(long)
-
setInitialSequenceId
Sets the baseline for the sequence ids for messages published by the producer.- Parameters:
initialSequenceId- the initial sequence id
-
getAutoUpdatePartitions
Description copied from interface:ReactiveMessageSenderSpecGets whether partitioned producer will automatically discover new partitions at runtime.- Specified by:
getAutoUpdatePartitionsin interfaceReactiveMessageSenderSpec- Returns:
- true if auto discovery of the partition configuration changes is enabled
- See Also:
-
ProducerBuilder.autoUpdatePartitions(boolean)
-
setAutoUpdatePartitions
Sets whether partitioned producer will automatically discover new partitions at runtime.- Parameters:
autoUpdatePartitions- true to enable auto discovery of the partition configuration changes
-
getAutoUpdatePartitionsInterval
Description copied from interface:ReactiveMessageSenderSpecGets the interval of partitions updates if autoUpdatePartitions is enabled.- Specified by:
getAutoUpdatePartitionsIntervalin interfaceReactiveMessageSenderSpec- Returns:
- the interval of partitions updates
- See Also:
-
ProducerBuilder.autoUpdatePartitionsInterval(int, java.util.concurrent.TimeUnit)
-
setAutoUpdatePartitionsInterval
Sets the interval of partitions updates if autoUpdatePartitions is enabled.- Parameters:
autoUpdatePartitionsInterval- the interval of partitions updates
-
getMultiSchema
Description copied from interface:ReactiveMessageSenderSpecGets whether the multiple schema mode is enabled.- Specified by:
getMultiSchemain interfaceReactiveMessageSenderSpec- Returns:
- true if the multiple schema mode is enabled
- See Also:
-
ProducerBuilder.enableMultiSchema(boolean)
-
setMultiSchema
Sets whether the multiple schema mode is enabled.- Parameters:
multiSchema- true to enable the multiple schema mode
-
getAccessMode
public org.apache.pulsar.client.api.ProducerAccessMode getAccessMode()Description copied from interface:ReactiveMessageSenderSpecGets the type of access mode that the producer requires on the topic.- Specified by:
getAccessModein interfaceReactiveMessageSenderSpec- Returns:
- the access mode
- See Also:
-
ProducerBuilder.accessMode(org.apache.pulsar.client.api.ProducerAccessMode)
-
setAccessMode
public void setAccessMode(org.apache.pulsar.client.api.ProducerAccessMode accessMode) Sets the type of access mode that the producer requires on the topic.- Parameters:
accessMode- the access mode
-
getLazyStartPartitionedProducers
Description copied from interface:ReactiveMessageSenderSpecGets whether producers register and connect immediately to the owner broker of each partition or start lazily on demand.- Specified by:
getLazyStartPartitionedProducersin interfaceReactiveMessageSenderSpec- Returns:
- true if lazy starting of partitioned producers is enabled
- See Also:
-
ProducerBuilder.enableLazyStartPartitionedProducers(boolean)
-
setLazyStartPartitionedProducers
Sets whether producers register and connect immediately to the owner broker of each partition or start lazily on demand.- Parameters:
lazyStartPartitionedProducers- true to enable lazy starting of partitioned producers
-
getProperties
Description copied from interface:ReactiveMessageSenderSpecGets the properties of the producer.- Specified by:
getPropertiesin interfaceReactiveMessageSenderSpec- Returns:
- the properties of the producer
- See Also:
-
ProducerBuilder.properties(java.util.Map<java.lang.String, java.lang.String>)
-
setProperties
Sets the properties of the producer.- Parameters:
properties- the properties of the producer
-
applySpec
Updates this spec from the defined values of another spec.- Parameters:
senderSpec- the spec from which to update
-