对于我们的系统,我们将重要消息标记为传递模式= 2,并通过持久交换和队列发送它们。问题在于,rabbitmq托管在docker容器上,并且如果该容器关闭,则在容器重启后丢失的持久化消息将丢失。
我想知道是否有一种方法可以将消息持久性的位置更改为已安装的卷而不是容器支持的磁盘,以及如何更改。我目前也无法弄清楚消息现在实际上在哪里保留,因此寻找配置绝对是一个开始,我不确定是否在哪里设置了此设置,因为我找不到与记忆力丧失有关的任何东西,这似乎是某些人的默认设置。位置更改是否可以在运行时进行,对我而言并不重要。
还要寻求帮助,请记住所有这些对我来说都是很新的,所以我对这个系统如何发挥所有功能的了解不是最多,所以简单的解释将比那些不必要的复杂解决方案。让我知道是否可以提供其他有用的信息。
答案 0 :(得分:1)
它是RabbitMQ文档中的right here。
使用以下内容创建/etc/rabbitmq/rabbitmq-env.conf
文件以更改持久数据位置:
MNESIA_DIR=/path/to/mounted/volume
请注意,RABBITMQ_
定义的变量不需要rabbitmq-env.conf
前缀
注意: RabbitMQ团队监视rabbitmq-users
mailing list,并且有时仅在StackOverflow上回答问题。