首页 > 其他 > 详细

disruptor消息丢失问题分析

时间:2021-04-20 21:07:53      阅读:81      评论:0      收藏:0      [点我收藏+]

背景

  • 学生考试上交的场景,我们先将学生数据持久化存储到mongodb中,就告知学生上交成功。然后通过disruptor消息队列去处理后续业务逻辑。这里的上交场景会存在高并发的情况。
  • 选型disruptor框架的原因是 其强大的单机消息处理能力,我们线上尝试使用。如果消息处理失败,则有相应的补偿措施。
  • 上线之初,对该框架研究不深,已经隐约感觉会有bug在路上。。。

线上问题1-消息丢失

  • 学生反馈作业上交提示成功,但老师端没有收到学生的作业。

排查过程1

  • 首先通过kibana日志系统,找到了 handler有error日志。那为什么一个学生处理失败,会导致很多学生作业都消息丢失呢?
    最后看到有帖子指出:消费者的handler处理器没有捕获异常,导致sequence赋值不对。
    技术分享图片

  • handler增加try/catch异常捕获,之后上线运行。一切正常。

  • 看似完美解决,然又一个bug悄然在路上。

线上问题2-同样是消息丢失,学生上交作业未成功

* kibana中未发现 异常日志。
* 本地单测压测也没有复现。

disruptor消息丢失问题分析

原文:https://www.cnblogs.com/yixiaoshuang/p/14682029.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!