我们有几个运行在集群中的RabbitMQ实现的硬件AWS主机。我们需要升级硬件,因此我们开发了一个Chef cookbook来生成替换服务器。
我们宁愿不手动重新创建的一件事是管理员用户,队列等等。
从旧主机到新主机的最佳方法是什么?我相信它是/var/lib/rabbitmq/mnesia
目录中的所有内容。
将文件从一个主机复制到另一个主机是否明智?
是否有程序化方法来执行此操作?
可以编入我们的厨师食谱吗?
答案 0 :(得分:0)
您绝对可以通过命令行导出和导入配置:https://www.rabbitmq.com/management-cli.html
但是,我不确定管理员用户。答案 1 :(得分:0)
如果在新硬件上创建新的rabbitmq节点,您将获得该新节点中的所有用户。这很容易尝试:
我写了docker,因为以这种方式创建群集的速度更快,但是如果你已经有了一个群集,你可以根据需要使用它进行测试。
对于队列和交换,我不想引用high availability的rabbitmq文档页面中的几乎所有内容,但我只想说你必须注意以下内容:< / p>
我会逐渐进行迁移,等待队列清空,然后杀死旧硬件上的节点。它可能以大爆炸的方式行事,但似乎风险更大。如果你有一个正在运行的系统,那么设置队列镜像并尝试找到适当的时间来进行手动同步 - 但要小心,这会对代理性能产生巨大影响。
此外还有shovel plugin(我必须指出我没有使用它甚至探索它)但这可能是另一种方式(引用链接):
实质上,铲子是一种简单的泵。每把铲子:
连接到源代理和目标代理,消耗 来自队列的消息,将每条消息重新发布到目标 经纪人(默认使用原始交易所名称和 routing_key)。