在rocketmq中,MQProducer
是承载消息发送的,消息的发送又可以分为常规消息的发送和事务消息的发送,其中常规消息发送用的是DefaultMQProducer
,事务消息的发送用的是TransactionMQProducer
。他们集成关系图如:
DefaultMQProducer
在DefaultMQProducer
中有一些常规的producer端的配置,如下所示:
producerGroup
: 生产者所属的组;defaultTopicQueueNums
:在创建topic时,topic上默认的队列数,默认为4 ;sendMsgTimeout
:发送消息的超时时间,默认为3000ms;compressMsgBodyOverHowmuch
:压缩消息体的阙值,默认为1024*4=4k,即当消息的body大小为4k的时候对body内容进行压缩;retryTimesWhenSendFailed
:同步发送失败时重试的次数,默认为2次;retryTimesWhenSendAsyncFailed
:异步发送失败时重试的次数,默认为2次;retryAnotherBrokerWhenNotStoreOK
:表示当发送失败的时候是否重试发送到另一个broker,默认为false;maxMessageSize
:消息body最大值,1024*1024*4 = 4M
DefaultMQProducer
相关配置源码信息如下:
1 | /** |
TransactionMQProducer
在TransactionMQProducer
中的附加配置项主要是针对事务回查的,如下所示:
1 | private int checkThreadPoolMinSize = 1; |
其中checkRequestHoldMax
是事务回查请求阻塞等待队列的最大值,即最多支持2000个请求等待。