异常信息:Exception (404) Reason: "NOT_FOUND - no queue ‘xxx’ in vhost ‘/’
常见原因: queue未创建就consume
问题现象:使用go写的服务,每次启动就会连接mq,试图创建持久性的queue、声明exchange并绑定。
完成后消费这些queue。 服务启动后一段时间内消费正常,稍后不定时出现连接异常,连接异常后,切换mq连接节点创建connection,并创建channel成功,在该channel上开始消费就一直报上述异常信息。根据代码逻辑可知,每次服务启动都会创建queue,所以不存在queue未创建的情况。
最终原因:发现原来是集群状态不正常,3个集群节点均变成了单点。连接异常切换mq连接节点会从mq1节点切换到mq2,由于mq1与mq2之间已经不是同一个集群,导致mq2上数据异常,导致服务一直消费异常。 重新将mq2 mq3节点join进入集群后,服务即自动恢复正常。