rocketMQ 消息丢失-生产消息发送成功,消费者没消费到消息

3 篇文章 0 订阅

消息丢失现场:    

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

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

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值