4

我正在尝试在两个数据中心之间为 RabbitMQ 提供灾难恢复。辅助数据中心是被动的,直到主 DC 关闭。
队列联合是不合适的,因为在辅助 DC 中的消费者激活之前它不会移动消息。这不应该发生,除非主 DC 不可用,此时这些消息无法访问。我考虑在主 DC 中创建一个额外的队列,该队列将接收每条消息的副本,然后使用 Federation 或 Shovel 将这些消息复制到辅助 DC。然后,当处理主 DC 中的“原始”消息时,问题就变成了从辅助 DC 中删除重复消息。
将队列镜像到辅助 DC 中的节点是可行的,但 RabbitMQ 由于延迟不会在 WAN 上集群。有没有其他人遇到过这种情况?谢谢。

4

1 回答 1

0

您非常雄辩地解释了使用联邦和铲子尝试使用 RabbitMq 解决 DR 的问题。Rabbit 的设计并不是为了通过 WAN 有效地移动数据。

跨 WAN 移动数据总是会给消息传递解决方案带来问题。例如,IBM MQ 具有用于 HA 的多实例队列管理器,但需要一个用于 DR 的 SAN,这在产品和处理时间上都变得昂贵。

您可以使用的另一个免费产品(如 Rabbit)是 Solace。它内置了 HA 和 DR 复制。它可以通过在 WAN 上近乎实时地异步移动每条消息来管理您描述的主动/被动被动 DR 场景。一旦您准备好将应用程序流量转移到备份 DC,您就可以激活备份实例并开始使用消息。当它从活动端被消耗时,它会自动“删除重复的消息”。

于 2018-09-24T19:56:08.277 回答