RocketMQ5.x的生产者,应该怎么配?

在RocketMQ 5.x中,生产者的配置主要包括以下几个方面:

1、创建生产者实例

2、设置生产者属性

3、发送消息

4、关闭生产者

下面详细介绍每个方面的配置方法。

创建生产者实例

在RocketMQ中,生产者实例是通过DefaultMQProducer类创建的,首先需要引入RocketMQ的依赖,然后创建一个DefaultMQProducer实例。

import org.apache.rocketmq.client.producer.DefaultMQProducer;
public class RocketMQProducer {
    public static void main(String[] args) throws Exception {
        // 创建一个名为"producerGroup"的生产者组
        DefaultMQProducer producer = new DefaultMQProducer("producerGroup");
        // 设置NameServer地址
        producer.setNamesrvAddr("127.0.0.1:9876");
        // 启动生产者实例
        producer.start();
    }
}

设置生产者属性

在创建完生产者实例后,可以通过setProperty方法设置生产者的属性,以下是一些常用的属性设置:

属性名默认值描述
sendMessageTimeout3000发送消息的超时时间,单位为毫秒
retryTimesWhenSendFailed2发送失败时的重试次数
maxReconsumeTimes18消息最大重试次数
topicPublishInfoBatchMaxSize1000批量发送主题消息的最大数量
compressMsgBodyOverHowmuch1024 * 4压缩消息体的大小阈值,超过该值则进行压缩
batchSize16批量发送消息的大小阈值,超过该值则进行批量发送
sendMessageThreadPoolNums128发送消息的线程池数量
pullMessageThreadPoolNums128拉取消息的线程池数量
checkFrequency60000检查Broker是否可用的频率,单位为毫秒
storePathRootDirnull消息存储路径的根目录
storePathCommitLognullcommitLog存储路径
mappedFileSizeCommitLog1GBcommitLog文件的大小阈值,超过该值则新建一个文件
flushIntervalCommitLog500mscommitLog刷新到磁盘的时间间隔,单位为毫秒
cleanResourceInterval1000 * 60 * 60清理资源的时间间隔,单位为毫秒
deleteWhen04commitLog文件删除的时间点,取值为小时(024)和分钟(059)的组合,例如04表示凌晨4点删除文件
fileReservedTime72commitLog文件保留的时间,单位为小时,超过该时间则删除文件
maxTransferBytesOnMessageInMemory1消息内存中传输的最大字节数,超过该值则将消息写入磁盘队列中等待传输
maxTransferCountOnMessageInMemory1消息内存中传输的最大次数,超过该值则将消息写入磁盘队列中等待传输
enableMsgTracefalse是否开启消息轨迹追踪功能,开启后会记录消息的发送和接收情况,用于排查问题
msgTraceTopicnull消息轨迹追踪的主题名称,如果为null则使用生产者组名作为主题名称
msgTraceConsumerGroupnull消息轨迹追踪的消费者组名称,如果为null则使用生产者组名作为消费者组名称
flushConsumerQueueLaterallyfalse是否启用侧边队列刷盘机制,当消费者消费速度过快时,可以将部分消息暂时存储在侧边队列中,待消费者慢下来后再进行消费,提高系统吞吐量
maxReconsumeTimeDifference1800000000L两次重试之间的最大时间差,超过该时间差则重新投递未被消费的消息,单位为毫秒,默认值为1表示禁用该功能
maxDelayTime1L如果设置了延迟消息,则该参数表示延迟的最大时间,单位为毫秒,默认值为1表示禁用该功能
maxOffsetDelta1L如果设置了延迟消息或者定时消息,则该参数表示允许的最大offset变化量,单位为毫秒,默认值为1表示禁用该功能
traceDispatcherListenerStackSize1LtraceDispatcherListener的堆栈大小,默认值为1表示使用JVM默认值,建议设置为32K或更大以减少OOM异常的发生概率,注意:此参数仅在开启traceDispatcherEnable时生效。

| traceDispatcherEnable

当前文章:RocketMQ5.x的生产者,应该怎么配?
本文URL:http://www.csdahua.cn/qtweb/news38/419338.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网