天天看点

记一次rabbitmq 消息不能接收故障的处理

问题

当时比较怪异,现象是通过rabbitmq 的management可以发送消息(消息内容比较小,很简单的),但是通过代码没有任何报错

但是消息就是不能看到(management 界面)

排错处理

开始以为是代码处理问题,但是没有异常日志,也怀疑因为代码发布造成队列错误造成消息写入错误,我一般的此类问题的方式

就是基于arthas 观察调用链(同时也可以看到输入以及输出)

对应spring boot amqttemplate 的处理(以下命令没啥多大问题,因为业务比较小,可以执行运行)

watch  org.springframework.amqp.rabbit.core.RabbitTemplate  convertAndSend '{params,returnObj}' -x 5      

但是通过测试观测,数据是正确的(输入以及输出,而且就是没有一样)说明mq 的监听服务的协议处理是正常的

当时就有点费事了,然后登录mq 服务器,查看mq 日志,观测系统的cpu 以及内存情况,发现都是正常的,然后习惯性的看了下磁盘

空间,很不好的是磁盘100%了,可用20多M了,问题应该就是这个了(mq 数据需要落盘,磁盘100%肯定是会有问题的)

解决

核心就是清理磁盘空间,比如日志的一些其他不需要的

造成问题的原因

复盘

参考资料