【问题标题】:How can I change the rabbitmq persist message location on Windows?如何在 Windows 上更改 rabbitmq 持久消息位置?
【发布时间】:2019-06-25 00:21:17
【问题描述】:

对于我们的系统,我们将重要消息标记为传递模式 = 2,并通过持久交换和队列发送它们。问题是 rabbitmq 托管在 docker 容器上,如果该容器出现故障,则在容器重新启动时,已持久化的消息会丢失。

我想知道是否有一种方法可以将消息持久性的位置更改为已安装的卷而不是容器支持的磁盘,如果可以,如何。我目前也无法弄清楚消息现在实际保存在哪里,因此寻找配置绝对是一个开始,我只是不确定这是在哪里设置的,因为我找不到任何与 mnesia 相关的东西,这似乎成为某些人的默认值。对位置的这种更改可能是在运行时也可能不是,这对我来说并不重要。

另外寻求帮助,请记住,所有这一切对我来说都是非常新的,所以我不是最了解这个系统如何在其所有荣耀中运作的知识,所以简单的解释将比那些有不必要的复杂解决方案的人。让我知道我是否可以提供任何其他有用的信息。

【问题讨论】:

  • 一个好的起点是storage 上的 Docker 文档,更具体地说是volumes 上的章节。
  • 所以我在该页面上阅读了相当多的内容,我觉得将容器安装到卷将有助于解决问题,我只是无法弄清楚如何实际这样做。我目前是同时启动所有微服务,只需要将一个消息队列服务挂载到一个卷上。你知道如何在启动容器后挂载卷,还是只能在启动时完成?

标签: docker rabbitmq containers messaging persist


【解决方案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 上回答问题。

【讨论】:

  • 我已经阅读了该页面大约一百万次,但无法真正弄清楚它在说什么。我应该把这个文件放在哪里?
  • 这就是我的回答:“创建具有以下内容的 /etc/rabbitmq/rabbitmq-env.conf 文件......”。请不要忘记在这里接受我的回答,谢谢。
  • 谢谢,对于 Windows,我必须将 MNESIA_DIR 卷映射到我的主机的位置,而且我认为我仍然没有 rabbit-mq.conf... 还没有弄清楚如何每次删除并重新启动容器时,该位置都会被覆盖
猜你喜欢
  • 2011-06-30
  • 2015-12-19
  • 2012-12-26
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 2016-09-01
  • 2018-10-31
  • 2011-07-17
相关资源
最近更新 更多