周五上线pre,发现mq消费端的调用的一个服务不停的报错,很快就把磁盘空间打满了,一开始以为是job死循环,当时确实也发现循环处有问题,修正循环处后,重新发布到pre环境发现还是有同样的问题,此时感觉很痛苦。通过仔细查看错误日志发现错误处是由rabbitmq 消费端报出来了,一时没有明白是什么原因,随找rabbitmq管理员,管理员说有消息一直没有消费掉,rabbitmq会一直重复投送消息,这样导致的链路的死循环。
总结:关于rabbit mq 没有死信队列,接受消息时,即消费端,如果抛出异常,则消息消耗不掉,rabbitmq会一直不停的投送消息,这样从整个链路上形成了死循环。业务错误暂且不论,这样仅仅错误日志就会把磁盘耗光,这点千万注意。