带负载均衡器的RabbitMQ集群

时间:2015-10-19 11:26:03

标签: php rabbitmq load-balancing high-availability

我需要在不同数据库之间同步表。因此,我想设置一个高可用性RabbitMQ集群。没有消息丢失是非常重要的,因为它会导致异步表。

RabbitMQ Cluster with LB

正如您在此处所看到的,此方法存在严重的失败点。如果负载均衡器因任何原因无法访问,则发送方无法向RabbitMQ队列发送消息。

可能的选择是:

  1. 将所有节点添加到您的应用程序并循环遍历它们,直到找到可用的节点。
  2. 在所有Web服务器节点上安装类似HAProxy的软件负载均衡器,以解析为正在运行的RabbitMQ节点。
  3. 我对两种解决方案都感到不舒服。也许有人对这个特定主题有更好的想法或进一步阅读?

    我想用php使用RabbitMQ。知道这个问题不是很重要,但也许有人知道PHP特定的答案。

1 个答案:

答案 0 :(得分:1)

这是一个常见问题。

如果您的方案中的负载均衡器可以fail,则必须向客户端实施HA行为。

大多数RabbitMQ客户端都没有实现HA。 例如,此client实现了HA客户端。

如果您担心负载均衡器失败,您还可以在HA中配置负载均衡器。

我会注意在HA中配置负载均衡器。

BTW你的问题很通用,希望有所帮助