好吧,之前从没使用过rabbit mq,新手期遇见一些问题,即便有AI辅助,但依然折腾好久才能解决。其实开发中的有些场景,AI还是不能帮着很快准确定位到问题,于是在此处做些记录,免得后面忘掉。
(对的,最近这段时间我很喜欢掘金,简单清新,我看到上面许多内容都是用心输出的。于是这种技术相关的记录直接记录在此处,供自己查阅同时也希望能够帮助有需要帮助的同学。)
一、为什么就是接收不到已经产生的消息呢?
第一步,是排查网络是否联通。
- ping
- telnet
都OK的。
第二步,怀疑生产者没有生产消息,想着简单些直接消费。
在AI帮助下使用以下指令尝试:
# 安装一个客户端
sudo apt install amqp-tools
# 消费
amqp-consume --url amqp://<username>:<password>@<hostname>:<port>/<vhost> <queue_name> --no-ack
好吧,没消费成功,放弃。
第三步,观察log,找到这样的一条:
naiormq.exceptions.ChannelPreconditionFailed: PRECONDITION_FAILED - inequivalent arg 'auto_delete' for queue 'queue_name' in vhost 'vhost_name': received 'true' but current is 'false'
囧囧的,上rabbitmq后台,删掉queue_name
后成功。
前后折腾一个半小时多,看到log之后只花一小时,此处警醒自己:排查问题的第一步是先看相关联log,或许答案就在log当中。
持续踩坑中……