问题
当时比较怪异,现象是通过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%肯定是会有问题的)
解决
核心就是清理磁盘空间,比如日志的一些其他不需要的