Client Configuration

Relative to RocketMQ's Broker cluster, producers and consumers are clients. This section describes the common behavior configuration of producers and consumers, including updates for RocketMQ 5.x.

1 Client Addressing Mode

RocketMQ allows clients to locate the Name Server, which then helps them find the Broker. Below are various configurations, prioritized from highest to lowest. Higher priority configurations override lower ones.

  • Specified Name Server address in the code (multiple addresses separated by semicolons):
producer.setNamesrvAddr("192.168.0.1:9876;192.168.0.2:9876");  
consumer.setNamesrvAddr("192.168.0.1:9876;192.168.0.2:9876");
  • Specified Name Server address in Java setup parameters:
-Drocketmq.namesrv.addr=192.168.0.1:9876;192.168.0.2:9876  
  • Specified Name Server address in environment variables:
export NAMESRV_ADDR=192.168.0.1:9876;192.168.0.2:9876   
  • HTTP static server addressing (default):

Clients retrieve Name Server addresses from a static HTTP server:

http://jmenv.tbsite.net:8080/rocketmq/nsaddr
  • New in RocketMQ 5.x:

    • Improved service discovery mechanism, allowing dynamic Name Server registration.
    • Introduces VIP_CHANNEL_ENABLED for better failover:
    producer.setVipChannelEnabled(false);
    consumer.setVipChannelEnabled(false);
    

2 Client Configuration

DefaultMQProducer, TransactionMQProducer, DefaultMQPushConsumer, and DefaultMQPullConsumer all extend the ClientConfig class, which provides common client configurations.

2.1 Client Common Configuration

Parameter NameDefault ValueDescription
namesrvAddrName Server address list (semicolon-separated)
clientIPLocal IPClient's local IP address (useful if automatic detection fails)
instanceNameDEFAULTUnique name for the client instance
clientCallbackExecutorThreads4Number of communication layer asynchronous callback threads
pollNameServerInterval30000Interval (ms) to poll Name Server
heartbeatBrokerInterval30000Interval (ms) for sending heartbeats to Broker
persistConsumerOffsetInterval5000Interval (ms) for persisting consumer offsets
autoUpdateNameServer (5.x)trueAutomatically update Name Server addresses from registry
instanceId (5.x)Unique identifier for each client instance

2.2 Producer Configuration

Parameter NameDefault ValueDescription
producerGroupDEFAULT_PRODUCERProducer group name
sendMsgTimeout3000Timeout (ms) for sending messages
retryTimesWhenSendFailed2Max retries for failed messages
enableBatchSend (5.x)trueEnables batch message sending
enableBackPressure (5.x)truePrevents overload in high-traffic scenarios

2.3 PushConsumer Configuration

Parameter NameDefault ValueDescription
consumerGroupDEFAULT_CONSUMERConsumer group name
messageModelCLUSTERINGMessage consumption mode (CLUSTERING or BROADCAST)
consumeFromWhereCONSUME_FROM_LAST_OFFSETDefault consumption position
consumeThreadMin20Min consumption thread count
consumeThreadMax20Max consumption thread count
Rebalance Strategies (5.x)AllocateMessageQueueAveragelyByCircleNew rebalance strategy for better distribution

2.4 PullConsumer Configuration

Parameter NameDefault ValueDescription
consumerGroupDEFAULT_CONSUMERConsumer group name
brokerSuspendMaxTimeMillis20000Max suspension time (ms) for long polling
consumerPullTimeoutMillis10000Timeout (ms) for pull requests
messageGroup (5.x)Enables orderly consumption based on groups

2.5 Message Data Structure

Field NameDefault ValueDescription
TopicnullRequired: Name of the message topic
BodynullRequired: Message content
TagsnullOptional: Tag for filtering
KeysnullOptional: Business keys (e.g., order IDs)
Flag0Optional: Custom flag
DelayTimeLevel0Optional: Message delay level
WaitStoreMsgOKTRUEOptional: Acknowledgment before storing
maxReconsumeTimes (5.x)Max retries before moving to dead-letter queue
messageGroup (5.x)Group-based message ordering