RabbitMQ – 我如何configuration服务器零宕机升级?

阅读了Docs和RabbitMQ in Action之后 ,创build一个RabbitMQ集群似乎很简单,但升级或修补现有的RabbitMQ集群似乎需要重新启动整个集群。

有没有一种方法来组合集群,铲子,联邦和负载平衡,使滚动升级成为可能,而不会丢失队列或消息,或者我错过了一些更明显的东西?

    假设您的rabbitmq客户端可以容忍掉线,您可以考虑这里描述的内容。

    我们的集群是在一个VIP后面。 当我们想要升级一个集群时,我们启动一个备用集群并将其切换到备用集群。 同时,我们有在群集之间移动消息的工具。 当“主”集群的更新完成时,我们逆转这个过程。

    从一个主要或次要版本的RabbitMQ升级到另一个版本时(例如,从3.0.x升级到3.1.x,或者从2.xx升级到3.xx),或者升级Erlang时,必须closures整个集群进行升级因为集群不能像这样运行混合版本)。 从一个补丁版本升级到另一个补丁版本(即从3.0.x到3.0.y)时,情况并非如此; 这些版本可以在集群中混合使用(3.0.0不能与3.0.x系列的更高版本混合使用)。