我们的应用程序使用单一节点的RabbitMQ,运行在单个Kubernetes pod中。
我们使用持久化队列,但是每当我们的云实例关闭并重新启动,并且RabbitMQ pod被重启时,我们现有的持久化队列都会消失。
起初,我认为问题出在存储队列的卷不具有持久性,但事实并非如此。
看起来队列数据存储在/var/lib/rabbitmq/mnesia/<user@hostname>
中。由于pod的主机名每次都会更改,因此它会为新主机名创建新的数据集,并且无法访问以前持久化的队列。我在mnesia文件夹中建立了许多文件集,这些文件集都来自之前的重新启动。
我该如何防止这种行为发生?
我找到的最接近的答案在这个问题中,但如果我理解正确,这只适用于具有同时共享队列数据的多个节点的群集。我不确定它是否适用于单一节点。是吗?