美文网首页
rocketmq生产者消费者配置

rocketmq生产者消费者配置

作者: Chaweys | 来源:发表于2021-08-21 17:53 被阅读0次

生产者常见核心配置:
compressMsgBodyOverHowmuch :消息超过默认字节4096后进行压缩
retryTimesWhenSendFailed :   失败重发次数
maxMessageSize :             最大消息配置,默认128k
topicQueueNums :             主题下面的队列数量,默认是4
autoCreateTopicEnable :      是否自动创建主题Topic, 开发建议为true,生产要为false
defaultTopicQueueNums :      自动创建服务器不存在的topic,默认创建的队列数
autoCreateSubscriptionGroup: 是否允许 Broker 自动创建订阅组,建议线下开发开启,线上关闭
brokerClusterName :          集群名称
brokerId :                   0表示Master主节点 大于0表示从节点
brokerIP1 :                  Broker服务地址
brokerRole :                 broker角色 ASYNC_MASTER/ SYNC_MASTER/ SLAVE
deleteWhen :                 每天执行删除过期文件的时间,默认每天凌晨4点
flushDiskType :             刷盘策略, 默认为 ASYNC_FLUSH(异步刷盘), 另外是SYNC_FLUSH(同步刷盘)
listenPort :                Broker监听的端口号
mapedFileSizeCommitLog :    单个conmmitlog文件大小,默认是1GB
mapedFileSizeConsumeQueue:  ConsumeQueue每个文件默认存30W条,可以根据项目调整
storePathRootDir :           存储消息以及一些配置信息的根目录 默认为用户的 ${HOME}/store
storePathCommitLog:         commitlog存储目录默认为${storePathRootDir}/commitlog
storePathIndex:             消息索引存储路径
syncFlushTimeout :           同步刷盘超时时间
diskMaxUsedSpaceRatio :     检测可用的磁盘空间大小,超过后会写入报错

一、RockerMQ消息常见发送状态
Broker消息投递状态讲解:
FLUSH_DISK_TIMEOUT: 没有在规定时间内完成刷盘 (刷盘策略需要为SYNC_FLUSH 才会出这个错误)
FLUSH_SLAVE_TIMEOUT:主从模式下,broker是SYNC_MASTER, 没有在规定时间内完成主从同步
SLAVE_NOT_AVAILABLE:从模式下,broker是SYNC_MASTER, 但是没有找到被配置成Slave的Broker
SEND_OK:发送成功

二、RocketMQ消息生产和消费异常重试和阈值设定:
消息重投(保证数据的高可靠性),本身内部支持重试,默认次数是2,
如果网络情况比较差,或者跨集群则建改多几次

消费端重试:
原因:消息处理异常、broker端到consumer端各种问题,如网络原因闪断,消费处理失败,ACK返回失败等等问题。
注意:
(1)、重试间隔时间配置 ,默认每条消息最多重试 16 次
messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
(2)、超过重试次数人工补偿
(3)、消费端去重:一条消息无论重试多少次,这些重试消息的 Message ID,key 不会改变。
(4)、消费重试只针对集群消费方式生效;广播方式不提供失败重试特性,即消费失败后,失败消息不再重试,继续消费新的消息。

相关文章

网友评论

      本文标题:rocketmq生产者消费者配置

      本文链接:https://www.haomeiwen.com/subject/zwycyltx.html