项目场景:
公司这边有个业务是通过MQ异步消费的操作,上游业务处理完,通过MQ消息通知到下游进行后续处理,但今天群里有同事跟我说我这边没有调用他们接口,我一听,这个业务是什么,什么接口,什么时候调用,三连问下来,原来搞明白了场景,遂去查看代码,发现与我上游业务处理无关,我是MQ异步丢消息给到下游,但出于好奇心,遂研究了下具体情况!
问题描述
经过最终核查业务代码中,日志系统中出现以下报错信息:
SimpleMessageListenerContainer : Consumer thread error, thread abort.
原因分析:
1、初步查看MQ消息积压且不消费,截图如下:
2、再次查看,发现队列无消费者
3、通过上面排查一下就明了了,是消费者没有监听,但具体看消费者服务进程还是存在的,这就让人很困惑,也就是说消费者没有监听队列,但进程还是好的;然后通过具体排查日志,发现有业务代码的报错,那么这一下又明了了
解决方案:
1、通过以上分析,日志提示的MQ的报错还是因为业务代码异常导致的
2、所以通过修改业务代码,上线发版解决了以上问题