RabbitMQ 和联邦。跨数据中心虚拟队列?

RabbitMQ 和联邦。跨数据中心虚拟队列?

我正在构建一个位于两个数据中心的系统,以实现弹性,使用实时/待机模型。该系统需要一个消息队列来传递消息以供系统后端处理。我目前的设计要求该消息队列(以及交换等)作为单个虚拟队列在两个数据中心共享。这样,可以通过关闭站点 A 中的队列消费者并在站点 B 中启动它们来实现故障转移 - 消费者只需订阅其本地代理并绑定到单个全局交换并开始接收发送到那里的消息,包括故障转移发生时排队的消息。

我以前使用过 RabbitMQ,知道它可以进行集群,但集群不适合 WAN 连接 - 它对数据包丢失/网络分区非常不容忍。我读过有关 rMQ 联合插件的文章,它似乎意味着两个联合代理可以允许它们的交换与相互连接的客户端绑定。

我不确定我是否可以使用它来实现我所需要的,似乎我需要每个 DC 代理定义一个交换,联合两个代理,然后每个站点上的客户端都需要绑定到其本地代理托管的交换和远程代理托管的交换。每个单独的交换对于特定代理仍然是本地的。我理解正确吗?

第二个问题 - 假设联邦插件可以与单独的 rMQ 集群一起使用?如果我在站点 A 中有一个 rMQ 代理集群,在站点 B 中有一个类似的集群,我可以将它们联合在一起吗?

相关内容