RabbitMQ拓扑可复制三节点集群

时间:2018-08-28 22:11:17

标签: rabbitmq

当前,我们通过三节点群集(在同一数据中心内的Windows虚拟机上运行)部署RabbitMQ。由于未知原因,我们的群集由于未知原因而容易受到网络分区的影响。我们希望使用RabbitMQ进行扩展,因此我们需要部署更适合我们内部网络的备用托管方法/拓扑。

根据文档,看来我们需要某种联合身份验证模型,但我需要协助以确保我处在通过联邦推荐托管模型的正确路径上。

我现在准备提出的模型是这样的:

  1. 部署了三个作为上游交换的节点:UBrokerA,UBrokerB,UBrokerC。
  2. 一个负载均衡器,位于#1之前的节点之前。消息生产者严格使用负载平衡器将消息排队。
  3. 部署为下游交换的三个节点:DSBrokerA,DSBrokerB,DSBrokerC。消息使用者连接到这些节点以处理消息。
  4. 来自#3的节点被配置为使用队列联合,以便使用者可以获取消息,而无论从何处接收消息。这将是一个完整的双向图。

在我看来,分离节点以接收消息和节点以处理消息的好处是,它使两个单独的活动分离。如果任何单个节点意外脱机,则节点集合似乎对故障更有抵抗力。尽管我无法证明这一点,所以我很可能会被误导。

通过交换和/或队列联合的组合,继续接收群集必须提供的好处的理想拓扑是什么?我们当前的配置使用直接交换,延迟交换和绑定到直接交换和延迟交换的五个队列。对我们来说最重要的是,消息只传递一次(需要避免在使用者中检查重复项),而避免消息丢失是至关重要的。

0 个答案:

没有答案