当前,我们通过三节点群集(在同一数据中心内的Windows虚拟机上运行)部署RabbitMQ。由于未知原因,我们的群集由于未知原因而容易受到网络分区的影响。我们希望使用RabbitMQ进行扩展,因此我们需要部署更适合我们内部网络的备用托管方法/拓扑。
根据文档,看来我们需要某种联合身份验证模型,但我需要协助以确保我处在通过联邦推荐托管模型的正确路径上。
我现在准备提出的模型是这样的:
在我看来,分离节点以接收消息和节点以处理消息的好处是,它使两个单独的活动分离。如果任何单个节点意外脱机,则节点集合似乎对故障更有抵抗力。尽管我无法证明这一点,所以我很可能会被误导。
通过交换和/或队列联合的组合,继续接收群集必须提供的好处的理想拓扑是什么?我们当前的配置使用直接交换,延迟交换和绑定到直接交换和延迟交换的五个队列。对我们来说最重要的是,消息只传递一次(需要避免在使用者中检查重复项),而避免消息丢失是至关重要的。