我是靠谱客的博主 时尚心情,最近开发中收集的这篇文章主要介绍rocketMQ 消息丢失-生产消息发送成功,消费者没消费到消息,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

消息丢失现场:    

预约成功消息,偶发收不到消息.

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 消息丢失-生产消息发送成功,消费者没消费到消息所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部