admin 管理员组

文章数量: 1087139


2024年4月14日发(作者:tiobe编程语言排行榜2021年9月)

RocketMQ参数

概述

在分布式系统中,消息中间件(Message Queue)起到了连接各个模块、解耦和提

高系统性能的重要作用。Apache RocketMQ是一款具备高可靠性、高吞吐量和低延

迟特性的分布式消息中间件。该中间件支持多种传输协议,提供了丰富的特性和功

能,可满足不同场景下的需求。

在使用RocketMQ时,合理设置参数是非常重要的,可以有效地调优消息的存储、

传输和消费等方面的性能。本文将对RocketMQ的参数进行全面、详细、完整的探

讨,帮助读者更好地理解RocketMQ的参数配置与调优。

Broker参数

Broker角色

RocketMQ中的Broker是消息存储、传输和消费的核心组件。下面是几个与Broker

角色相关的参数:

1.

brokerIP1

brokerIP2

brokerIP3

:Broker节点的IP地址列表,用于指定

集群模式下的Broker节点。

2.

brokerName

:Broker节点的名称,用于唯一标识一个Broker实例。

3.

listenPort

:Broker监听的端口号。

4.

deleteWhen

:消息保存时间,单位为小时。超过指定时间的消息将被删除。

5.

fileReservedTime

:文件保留时间,单位为48小时。超过指定时间的文件将

被删除。

6.

fileCleanInterval

:清理文件的间隔时间,单位为1分钟。

存储参数

RocketMQ采用Commit Log和Consume Queue双重存储来保证消息的可靠持久化和

高效读取。以下是存储相关的参数:

1.

storePathRootDir

:消息存储的根目录,默认为

$HOME/store

2.

storePathCommitLog

:Commit Log存储路径,默认为

$storePathRootDir/commitlog

3.

flushCommitLogLeastPages

:每次提交Commit Log的最小页数,默认为4。

4.

flushCommitLogThoroughInterval

:刷盘Commit Log的时间间隔,默认为1

秒。

5.

commitIntervalCommitLog

:提交Commit Log的时间间隔,默认为200毫秒。

网络参数

RocketMQ使用Netty作为网络通信框架,以下是与网络相关的参数:

1.

2.

3.

4.

5.

listenPort

:Broker监听的端口号。

sendThreadPoolQueueCapacity

:发送消息线程池队列的容量。

sendThreadPoolMinSize

:发送消息线程池的最小线程数。

sendThreadPoolMaxSize

:发送消息线程池的最大线程数。

sendThreadPoolKeepAliveTime

:发送消息线程池的线程空闲时间。

消费参数

RocketMQ支持多种消费模式,可以按照不同的需求进行配置。以下是与消费相关

的参数:

1.

2.

3.

4.

5.

consumeThreadMin

:消费线程的最小数量。

consumeThreadMax

:消费线程的最大数量。

consumeConcurrentlyMaxSpan

:并发消费消息时,消费者处理队列的最大跨度。

pullThresholdForQueue

:当待拉取的消息数超过该值时,将触发流控机制。

consumeMessageBatchMaxSize

:批量消费消息时,一次最多消费的消息数。

Name Server参数

Name Server角色

RocketMQ中的Name Server是协调Broker与Producer、Consumer之间的关系的

核心组件。下面是几个与Name Server角色相关的参数:

1.

configFile

:配置文件路径,用于指定Name Server的配置文件。

2.

listenPort

:Name Server监听的端口号,默认为9876。

3.

namesrvAddr

:Name Server的地址,用于指定集群模式下的Name Server地

址。

4.

lackTopicDefaultValue

:主题缺省队列数,默认为8。

5.

queryTopicEnable

:是否允许自动创建主题,默认为true。

域名解析参数

RocketMQ通过域名解析来发现Name Server的地址,以下是相关的参数:

1.

useNameServer

:是否通过Name Server的域名来解析地址。

2.

nameServerAddress

:Name Server的地址列表,用于指定集群模式下的Name

Server地址。

3.

pollNameServerInteval

:从Name Server拉取地址的时间间隔。

客户端参数

RocketMQ的Producer和Consumer客户端也有一些参数可以进行配置,以下是一

些常用的参数:

Producer参数

1.

retryTimesWhenSendFailed

:发送消息失败时的重试次数。

2.

sendMsgTimeout

:发送消息的超时时间,单位为毫秒。

3.

compressMsgBodyOverHowmuch

:压缩消息内容的阈值。

Consumer参数

1.

consumeTimeout

:消费超时时间,单位为分钟。

2.

messageModel

:消息模型,支持集群模式和广播模式。

3.

consumeConcurrentlyMaxSpan

:并发消费消息时,消费者处理队列的最大跨度。

总结

RocketMQ是一款强大的分布式消息中间件,合理地设置参数对于提高系统性能和

稳定性非常重要。本文从Broker、Name Server和客户端三个角度详细介绍了

RocketMQ的参数配置和调优方法。在实际应用中,需要根据具体场景和需求进行

参数的调整,并进行性能测试和监控,以便及时发现并解决问题。希望本文对读者

理解和使用RocketMQ有所帮助。


本文标签: 消息 参数 时间 消费 线程