我在一台主机上一起运行多个服务的系统,我想使用LVM快照(或类似)进行备份。
其中一项服务是 RabbitMQ
由于RabbitMQ的消息可能在内存中并且永远不会到达磁盘,因此我想在备份之前将它们刷新到磁盘,并且可能会锁定服务以使快照运行。
这是一个合理的场景吗? RabbitMQ是否支持这样的流程?
我知道management plugin,但这不符合快照相同"时间点"的策略。对于整个系统...
我看到很多讨论,但没有一个讨论存储快照。
想法?
答案 0 :(得分:1)
备份的最佳方法是使用rabbitmq stop_app
停止rabbitmq应用程序。
但如果您在停止RMQ时使用not persistent
消息,则会丢失消息。
如果您需要备份消息,则应始终使用持久消息以及大量消息的延迟队列,然后stop_app
和备份。
通过这种方式,您可以将所有邮件刷新到磁盘,并且可以备份mnesia
目录。
在我个人看来,备份RMQ消息没有意义,我使用镜像队列而不是备份。