概述
消息丢失现场:
预约成功消息,偶发收不到消息.
1)排查发现rocketmq 生产者 发送到mq成功。
2)消费者没消费到对应消息
现场情况分析
分析:rocketMq消息都是有多种可能原因:
1)mq消息异步 刷盘机制, 可以优化为同步刷盘机制
2)mq集群异步复制 , 可以优化为 同步复制机制。
3)mq消息发送失败记录,并做发送重试机制。
4)生产消息的发送机制,做同步发送机制。 (生产发送消息: 同步,异步, oneway)
发现排查原因:
猜测可能后,落地实处,需要找到当前问题的原因,有图有真相(有图有日志)。
安装mq-console 查看topic状态 及consume消费情况:
1)根据生产的messageId 查找消息。 发现在mq可以找到。 明确消息发送成功。
2)消费失败,consume 发现有两个队列 未消费的消息在堆积。
3)消息堆积的 设置topic的 写队列,读队列的配置。
4) opic::rubik-hospital 写队列2 ,读队列4 : 控制堵塞队列不写数据。
5)topic::new-rubik-hospital 写队列2 读队列4, --- 0,1队列有消息进队列, 2 3 队列无消息,
但是 消费者还是都是在2,3 队列, 0,1 队列 消息全部堵塞。
关键:consume消费者需要分开:
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name_13"); consumer.setNamesrvAddr("10.11.218.245:9876"); consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET); consumer.subscribe("TopicTest", "TagA || TagC || TagD");
topic: rubik-hospital
new-rubik-hospital
最后
以上就是时尚心情为你收集整理的rocketMQ 消息丢失-生产消息发送成功,消费者没消费到消息的全部内容,希望文章能够帮你解决rocketMQ 消息丢失-生产消息发送成功,消费者没消费到消息所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复