我们在AWS上托管了RabbitMQ服务器,最近我们收到通知,实例将处于维护状态,并且几个小时后将暂时无法使用。 由于它是生产服务器,我们希望避免用户停机,并且目前正在考虑将RabbitMQ迁移到另一台服务器而不会丢失数据的策略。看起来有两种选择:
在没有清理数据的情况下,我无法找到实现(1)的方法,因此该选项看起来不可行。 至于(2)它看起来非常手动和令人毛骨悚然。 是否有其他数据迁移策略或我在这里遗漏了什么?
答案 0 :(得分:0)
我设法通过设置RabbitMQ集群为第一个选项设置流程,以便无需停机即可复制数据。要做到这一点,我跟着manual,但调整了两件事使它适用于我的堆栈:
vi / etc / hosts
文件看起来像这样:
127.0.0.1 localhost
10.242.86.191 ip-10-242-86-191
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
rabbitmqctl set_policy policy_name" queue_pattern" ' {" ha-mode":"所有"," ha-sync-mode":"自动"}&#39 ; -p your_vhost
顺便说一下,在文档中没有提到 -p your_vhost 参数 - 如果你使用的话,请注意指定vhost。
设置完所有队列的队列在群集中复制并通过mnesia同步后,这使我能够在没有停机的情况下关闭第一台群集机器,并在维护之后打开而不会丢失数据。