Pulsar Node.js client configurations

Client configs

The following configurable parameters are available for Pulsar Node.js clients:

ParameterDescriptionDefault
serviceUrlThe connection URL for the Pulsar cluster. See above for more info.
authenticationConfigure the authentication provider. (default: no authentication). See mTLS authentication for more info.
operationTimeoutSecondsThe timeout for Node.js client operations (creating producers, subscribing to and unsubscribing from topics). Retries occur until this threshold is reached, at which point the operation fails.30
ioThreadsThe number of threads to use for handling connections to Pulsar brokers.1
messageListenerThreadsThe number of threads used by message listeners (consumers and readers).1
concurrentLookupRequestThe number of concurrent lookup requests that can be sent on each broker connection. Setting a maximum helps to keep from overloading brokers. You should set values over the default of 50000 only if the client needs to produce and/or subscribe to thousands of Pulsar topics.50000
tlsTrustCertsFilePathThe file path for the trusted TLS certificate.
tlsValidateHostnameThe boolean value of setup whether to enable TLS hostname verification.false
tlsAllowInsecureConnectionThe boolean value of setup whether the Pulsar client accepts untrusted TLS certificate from broker.false
statsIntervalInSecondsInterval between each stat info. Stats is activated with positive statsInterval. The value should be set to 1 second at least600
logA function that is used for logging.console.log

Producer configs

ParameterDescriptionDefault
topicThe Pulsar topic to which the producer publishes messages. The topic format is <topic-name> or <tenant-name>/<namespace-name>/<topic-name>. For example, sample/ns1/my-topic.
producerNameA name for the producer. If you do not explicitly assign a name, Pulsar automatically generates a globally unique name. If you choose to explicitly assign a name, it needs to be unique across all Pulsar clusters, otherwise the creation operation throws an error.
sendTimeoutMsWhen publishing a message to a topic, the producer waits for an acknowledgment from the responsible Pulsar broker. If a message is not acknowledged within the threshold set by this parameter, an error is thrown. If you set sendTimeoutMs to -1, the timeout is set to infinity (and thus removed). Removing the send timeout is recommended when using Pulsar’s message de-duplication feature.30000
initialSequenceIdThe initial sequence ID of the message. When producer send message, add sequence ID to message. The ID is increased each time to send.
maxPendingMessagesThe maximum size of the queue holding pending messages (i.e. messages waiting to receive an acknowledgment from the broker). By default, when the queue is full all calls to the send method fails unless blockIfQueueFull is set to true.1000
maxPendingMessagesAcrossPartitionsThe maximum size of the sum of partition’s pending queue.50000
blockIfQueueFullIf set to true, the producer’s send method waits when the outgoing message queue is full rather than failing and throwing an error (the size of that queue is dictated by the maxPendingMessages parameter); if set to false (the default), send operations fails and throw a error when the queue is full.false
messageRoutingModeThe message routing logic (for producers on partitioned topics). This logic is applied only when no key is set on messages. The available options are: round robin (RoundRobinDistribution), or publishing all messages to a single partition (UseSinglePartition, the default).UseSinglePartition
hashingSchemeThe hashing function that determines the partition on which a particular message is published (partitioned topics only). The available options are: JavaStringHash (the equivalent of String.hashCode() in Java), Murmur3_32Hash (applies the Murmur3 hashing function), or BoostHash (applies the hashing function from C++’s Boost library).BoostHash
compressionTypeThe message data compression type used by the producer. The available options are LZ4, and Zlib, ZSTD, SNAPPY.Compression None
batchingEnabledIf set to true, the producer send message as batch.true
batchingMaxPublishDelayMsThe maximum time of delay sending message in batching.10
batchingMaxMessagesThe maximum size of sending message in each time of batching.1000
propertiesThe metadata of producer.

Consumer configs

ParameterDescriptionDefault
topicThe Pulsar topic on which the consumer establishes a subscription and listen for messages.
topicsThe array of topics.
topicsPatternThe regular expression for topics.
subscriptionThe subscription name for this consumer.
subscriptionTypeAvailable options are Exclusive, Shared, Key_Shared, and Failover.Exclusive
subscriptionInitialPositionInitial position at which to set cursor when subscribing to a topic at first time.SubscriptionInitialPosition.Latest
ackTimeoutMsAcknowledge timeout in milliseconds.0
nAckRedeliverTimeoutMsDelay to wait before redelivering messages that failed to be processed.60000
receiverQueueSizeSets the size of the consumer’s receiver queue, i.e. the number of messages that can be accumulated by the consumer before the application calls receive. A value higher than the default of 1000 could increase consumer throughput, though at the expense of more memory utilization.1000
receiverQueueSizeAcrossPartitionsSet the max total receiver queue size across partitions. This setting is used to reduce the receiver queue size for individual partitions if the total exceeds this value.50000
consumerNameThe name of consumer. Currently(v2.4.1), failover mode use consumer name in ordering.
propertiesThe metadata of consumer.
listenerA listener that is called for a message received.
readCompactedIf enabling readCompacted, a consumer reads messages from a compacted topic rather than reading a full message backlog of a topic.

A consumer only sees the latest value for each key in the compacted topic, up until reaching the point in the topic message when compacting backlog. Beyond that point, send messages as normal.

readCompacted can only be enabled on subscriptions to persistent topics, which have a single active consumer (like failure or exclusive subscriptions).

Attempting to enable it on subscriptions to non-persistent topics or on shared subscriptions leads to a subscription call throwing a PulsarClientException.
false

Reader configs

ParameterDescriptionDefault
topicThe Pulsar topic on which the reader establishes a subscription and listen for messages.
startMessageIdThe initial reader position, i.e. the message at which the reader begins processing messages. The options are Pulsar.MessageId.earliest (the earliest available message on the topic), Pulsar.MessageId.latest (the latest available message on the topic), or a message ID object for a position that is not earliest or latest.
receiverQueueSizeSets the size of the reader’s receiver queue, i.e. the number of messages that can be accumulated by the reader before the application calls readNext. A value higher than the default of 1000 could increase reader throughput, though at the expense of more memory utilization.1000
readerNameThe name of the reader.
subscriptionRolePrefixThe subscription role prefix.
readCompactedIf enabling readCompacted, a consumer reads messages from a compacted topic rather than reading a full message backlog of a topic.

A consumer only sees the latest value for each key in the compacted topic, up until reaching the point in the topic message when compacting backlog. Beyond that point, send messages as normal.

readCompacted can only be enabled on subscriptions to persistent topics, which have a single active consumer (like failure or exclusive subscriptions).

Attempting to enable it on subscriptions to non-persistent topics or on shared subscriptions leads to a subscription call throwing a PulsarClientException.
false