前言

RocketMQ对于JAVA程序员来说应该都不陌生,RocketMQ是一款由阿里巴巴开源出来的一款消息中间件,各个大厂基本上都在用的这么一个中间件,其优点自不必言说,所以今天就不给大家来剖析RocketMQ了。

我们来分享点不一样的,相信大家在用RocketMQ时或多或少都会遇到一些问题,而比较常见的就是当其报错或配置一个参数时,往往一些新手就会懵逼这是啥意思呀,不知道如何处理。所以小编在这里整理了一份《RocketMQ全部参数配置表》,帮助大家来更好的使用RocketMQ。

废话不多说直接上干货。


1、 Broker配置                                            

参数名

默认值

说明

listenPort

10911

接受客户端连接的监听端口

namesrvAddr

null

nameServer 地址

brokerIP1

网卡的 InetAddress

当前 broker 监听的 IP

brokerIP2

跟 brokerIP1 一样

存在主从 broker 时, 如果在

broker 主节点上配置了

brokerIP2 属性, broker 从

节点会连接主节点配置的

 brokerIP2 进行同步

brokerName

null

broker 的名称

brokerClusterName

DefaultCluster

本 broker 所属的 Cluser 名称

brokerId

0

broker id, 0 表示 master, 其

他的正整数表示 slave

storePathCommitLog

$HOME/store/commitlog/

存储 commit log 的路径

storePathConsumerQueue

$HOME/store/consumequeue/

存储 consume queue 的路径

mappedFileSizeCommitLog

1024 * 1024 * 1024(1G)

commit log 的映射文件大小

deleteWhen

 

04

在每天的什么时间删除已经

超过文件保留时间的

 commit log

fileReservedTime

72

以小时计算的文件保留时间

brokerRole

ASYNC_MASTER

SYNC_MASTER/ASYNC_M

ASTER/SLAVE

flushDiskType


ASYNC_FLUSH

SYNC_FLUSH/ASYNC_FLU

SH SYNC_FLUSH 模式下的 broker 保证在收到确认生产 者之前将消息刷盘。  ASYNC_FLUSH 模式下的 broker 则利用刷盘一组消息的模      式, 可以取得更好的性能。

2、客户端的公共配置                                   

参数名

默认值

说明


namesrvAddr


Name Server地址列表,多个NameServer地 址用分号隔开


clientIP


本机IP

客户端本机IP地址,某些机器会发生无法识别 客户端IP地址情况,需要应用在代码中强制指 定


instanceName


DEFAULT

客户端实例名称,客户端创建的多个 Producer、 Consumer实际是共用一个内部实 例(这个实例包含网络连接、线程资源等)

clientCallbackExecutorThreads

4

通信层异步回调线程数

pollNameServerInteval

30000

轮询Name Server间隔时间,单位毫秒

heartbeatBrokerInterval

30000

Broker发送心跳间隔时间,单位毫秒


persistConsumerOffsetInterval


5000

持久化Consumer消费进度间隔时间,单位毫 秒

3、 Producer配置                                        


参数名

默认值

说明

producerGroup

DEFAULT_PRODUCER

Producer组名, 多个Producer如果属于一个应用, 发送同样 的消息,

则应该将它们归为同一组

createTopicKey

TBW102

在发送消息时, 自动创建

服务器不存在的topic

需要指定 Key,该Key

可用于配置发送消息

所在topic的默认路由。

defaultTopicQueueNums

4

在发送消息, 自动创建服务

器不存在的topic时, 默认

创建的队 列数

sendMsgTimeout

10000

发送消息超时时间, 单位

毫秒

compressMsgBodyOverHowmuch

4096

消息Body超过多大开始压缩 (Consumer收到消息

会自动解压 缩) ,

单位字节

retryAnotherBrokerWhenNotStoreOK

FALSE

如果发送消息返回sendResult, 但是

sendStatus!=SEND_OK, 是否重试发送

retryTimesWhenSendFailed

2

如果消息发送失败, 最大

重试次数, 该参数只对同

步发送模式 起作用

maxMessageSize

4MB

客户端限制的消息大小,

超过报错, 同时服务端也

会限制, 所以需要跟服务

端配合使用。

transactionCheckListener


事务消息回查监听器, 如

果发送事务消息, 必须设

checkThreadPoolMinSize

1

BrokerProducer事务

状态时, 线程池最小线

程数

checkThreadPoolMaxSize

1

Broker回查Producer事务

状态时, 线程池最大线

程数

checkRequestHoldMax

2000

Broker回查Producer事务

状态时, Producer本地

缓冲请求队列大小


RPCHook


null

该参数是在Producer创建

时传入的, 包含消息发送

前的预处理 和消息响应后

的处理两个接口, 用户可

以在第一个接口中做一

些安全控制或者其他操作。

4、 PushConsumer配置                              

参数名

默认值

说明

consumerGroup

DEFAULT_CONSUMER

Consumer组名,

多个Consumer如果

属于一个应用,

订阅同样的消息,

且消 费逻辑一致,

则应该将它们归为

同一组

messageModel

CLUSTERING

消费模型支持集群消费和广播消费两种

consumeFromWhere


CONSUME_FROM_LAST_OFFSET

Consumer启动后,

默认从上次消费的

位置开始消费,

这包含两种情况:

一 种是上次消费的

位置未过期, 则消

费从上次中止的位

置进行;  一种是

上次消 费位置已经

过期, 则从当前队

列第一条消息开始

消费

consumeTimestamp

半个小时前

只有当consumeFr

omWhere值为CONSUME_FR

OM_TIMESTAMP时才起作 用。

allocateMessageQueueStrategy

AllocateMessageQueueAveragely

Rebalance算法实现策略

subscription


订阅关系

messageListener


消息监听器

osetStore


消费进度存储

consumeThreadMin

10

消费线程池最小线程数

consumeThreadMax

20

消费线程池最大线程数

consumeConcurrentlyMaxSpan

2000

单队列并行消费允许的最大跨度

pullThresholdForQueue

1000

拉消息本地队列缓存消息最大数

pullInterval

0

拉消息间隔, 由于是长轮询, 所以为0, 但是如果应用为了流控, 也可以设置 大于0的值, 单位毫秒

consumeMessageBatchMaxSize

1

批量消费, 一次消费多少条消息

pullBatchSize

32

批量拉消息, 一次最多拉多少条

5、 PullConsumer配置                                


参数名

默认值

说明


consumerGroup


DEFAULT_CONSUMER

Consumer组名, 多个Consumer

果属  于一个应用, 订阅同样

的消息, 且消

费逻 辑一致,

则应该将它们

归为同一组

brokerSuspendMaxTimeMillis

20000

长轮询, Con

sumer拉消息

请求在Broker

挂起最长时间, 单位毫秒


consumerTimeoutMillisWhenSuspend


30000

长轮询, Consum

er拉消息请求

Broker 挂

起超过指定时间, 客户端认为超时,单位

毫秒

consumerPullTimeoutMillis

10000

非长轮询,

拉消息超时时间, 单位毫秒

messageModel

BROADCASTING

消息支持两种

模式:  集群

消费和广播消

messageQueueListener


监听队列变化

osetStore


消费进度存储

registerTopics


注册的topic集合

allocateMessageQueueStrategy

AllocateMessageQueueAveragely

Rebalance算法实现策略

6 Message数据结构                                     

字段名

默认

说明

Topic

null

必填,消息所属topic的名称

Body

null

必填,消息体

Tags

null

选填,消息标签,方便服务器过滤使用。目前只支持每个消息设 置一个tag



Keys



null

选填,代表这条消息的业务关键词,服务器会根据keys创建哈希   索引,设置后,可以在Console系统根据Topic、 Keys来查询消     息,由于是哈希索引,请尽可能保证key唯一,例如订单号,商品 Id等。

Flag

0

选填,完全由应用来设置,  RocketMQ不做干预

DelayTimeLevel


0

选填,消息延时级别,  0表示不延时,大于0会延时特定的时间才 会被消费

WaitStoreMsgOK

TRUE

选填,表示消息是否在服务器落盘后才返回应答。

结语