RabbitMQ 服务器(代理)的负载平衡,而不是消费者(客户端)

Load balancing for RabbitMQ server (broker), not the consumers(clients)

在这个例子中,我在我的网络中设置了 2 个消费者和 2 个发布者。该中心是一个 RabbitMQ 代理,如下面的屏幕截图所示。由于故障安全原因,我想知道 RabbitMQ 是否以任何方式支持服务器(代理)的负载平衡或镜像。我只是想摆脱星形拓扑结构有两个原因:

1) If one broker fails, another publisher can take over immediately

2) If one brokers network throughput is not good enough the other takes over

解决一个或另一个(甚至两个)会很棒。

我当前的基础设施

首选基础架构

RabbitMQ集群(docs)可以满足你的第一个需求。使用三个节点并确保您的应用程序经过编码和测试以将故障场景考虑在内。

我不知道有什么开箱即用的东西可以满足您的第二个要求。由于吞吐量较低,您将必须实施一些使用集群统计信息或应用程序统计信息来确定何时切换到另一个集群的东西。


注意: RabbitMQ 团队监控 the rabbitmq-users mailing list 并且有时只在 Whosebug 上回答问题。