mirror of
https://github.com/apache/rocketmq.git
synced 2026-09-01 15:47:01 +08:00
108 lines
5.5 KiB
Markdown
108 lines
5.5 KiB
Markdown
## 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):
|
|
|
|
```java
|
|
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:
|
|
|
|
```text
|
|
-Drocketmq.namesrv.addr=192.168.0.1:9876;192.168.0.2:9876
|
|
```
|
|
|
|
- Specified `Name Server` address in environment variables:
|
|
|
|
```text
|
|
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:
|
|
```text
|
|
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:
|
|
|
|
```java
|
|
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 Name | Default Value | Description |
|
|
|-------------------------------|---------------|--------------|
|
|
| namesrvAddr | | Name Server address list (semicolon-separated) |
|
|
| clientIP | Local IP | Client's local IP address (useful if automatic detection fails) |
|
|
| instanceName | DEFAULT | Unique name for the client instance |
|
|
| clientCallbackExecutorThreads | 4 | Number of communication layer asynchronous callback threads |
|
|
| pollNameServerInterval | 30000 | Interval (ms) to poll Name Server |
|
|
| heartbeatBrokerInterval | 30000 | Interval (ms) for sending heartbeats to Broker |
|
|
| persistConsumerOffsetInterval | 5000 | Interval (ms) for persisting consumer offsets |
|
|
| **autoUpdateNameServer** (5.x) | true | Automatically update Name Server addresses from registry |
|
|
| **instanceId** (5.x) | | Unique identifier for each client instance |
|
|
|
|
#### 2.2 Producer Configuration
|
|
|
|
| Parameter Name | Default Value | Description |
|
|
|--------------------------------|----------------------|--------------|
|
|
| producerGroup | DEFAULT_PRODUCER | Producer group name |
|
|
| sendMsgTimeout | 3000 | Timeout (ms) for sending messages |
|
|
| retryTimesWhenSendFailed | 2 | Max retries for failed messages |
|
|
| **enableBatchSend** (5.x) | true | Enables batch message sending |
|
|
| **enableBackPressure** (5.x) | true | Prevents overload in high-traffic scenarios |
|
|
|
|
#### 2.3 PushConsumer Configuration
|
|
|
|
| Parameter Name | Default Value | Description |
|
|
|--------------------------------------|------------------------------------|-------------|
|
|
| consumerGroup | DEFAULT_CONSUMER | Consumer group name |
|
|
| messageModel | CLUSTERING | Message consumption mode (CLUSTERING or BROADCAST) |
|
|
| consumeFromWhere | CONSUME_FROM_LAST_OFFSET | Default consumption position |
|
|
| consumeThreadMin | 20 | Min consumption thread count |
|
|
| consumeThreadMax | 20 | Max consumption thread count |
|
|
| **Rebalance Strategies (5.x)** | AllocateMessageQueueAveragelyByCircle | New rebalance strategy for better distribution |
|
|
|
|
#### 2.4 PullConsumer Configuration
|
|
|
|
| Parameter Name | Default Value | Description |
|
|
|------------------------------------|------------------------------|-------------|
|
|
| consumerGroup | DEFAULT_CONSUMER | Consumer group name |
|
|
| brokerSuspendMaxTimeMillis | 20000 | Max suspension time (ms) for long polling |
|
|
| consumerPullTimeoutMillis | 10000 | Timeout (ms) for pull requests |
|
|
| **messageGroup** (5.x) | | Enables orderly consumption based on groups |
|
|
|
|
#### 2.5 Message Data Structure
|
|
|
|
| Field Name | Default Value | Description |
|
|
|-------------------|---------------|-------------|
|
|
| Topic | null | Required: Name of the message topic |
|
|
| Body | null | Required: Message content |
|
|
| Tags | null | Optional: Tag for filtering |
|
|
| Keys | null | Optional: Business keys (e.g., order IDs) |
|
|
| Flag | 0 | Optional: Custom flag |
|
|
| DelayTimeLevel | 0 | Optional: Message delay level |
|
|
| WaitStoreMsgOK | TRUE | Optional: Acknowledgment before storing |
|
|
| **maxReconsumeTimes** (5.x) | | Max retries before moving to dead-letter queue |
|
|
| **messageGroup** (5.x) | | Group-based message ordering |
|
|
|
|
---
|
|
|