当前位置:   article > 正文

MQ消费端线程“突然挂掉”?或许只是异常没catch_mq消息过程中线程挂掉没有异常信息

mq消息过程中线程挂掉没有异常信息

现场还原

消费端实现了MessageListenerConcurrently监听接口,然后实现了consumeMessage这个方法。
此方法中,我开了线程池去执行消费消息的逻辑,但是走到一行打印日志的代码时候,突然不执行了。

在这里插入图片描述
然后就没了,也没有报任何异常,下面的其他逻辑也没有执行。我怀疑是线程挂了。

排查–追踪线程

首先我排查下面的逻辑是否有问题, 发现没问题后,多打印了几个我觉得一定会打印的日志。结果发现,还是没有打印我觉得一定会打的日志。

其次,我开始追踪这个线程。
通过jps快速找到pid, jstack -l >temp.txt 命令快速将堆栈信息导出来。
观察这个mq-incr-pool-4线程在干嘛,是否存在等。
结果发现并没有这个mq-incr-pool-4线程,说明这个线程挂了。
在这里插入图片描述

那为啥会挂呢?还没有任何报错日志。

我尝试换成了其他打印的日志。再次观察。发现可以打出来,就我那条打不出来。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/996856
推荐阅读
相关标签
  

闽ICP备14008679号