Performance 如何使RabbitMQ可伸缩?

Performance 如何使RabbitMQ可伸缩?,performance,rabbitmq,cluster-computing,load-balancing,scalability,Performance,Rabbitmq,Cluster Computing,Load Balancing,Scalability,我尝试测试RabbitMQ,但发现RabbitMQ存在一些问题: 如果我创建了一个包含3个节点的集群,则发布/交付的节点数不能超过6000/s。 另一方面,如果我只使用一个节点,我可以发布/交付到25000/s。 这意味着,我添加的节点越多,性能就越差 但从这篇文章来看: 他们可以发表超过100万篇文章,那么他们如何做到这一点呢? 我想让RabbitMQ每秒处理超过100万条消息,这可能取决于其他因素,如网络或硬件性能 阅读基准时始终考虑测试环境>/P> 至于如何提高性能,如果这是限制因素,您

我尝试测试RabbitMQ,但发现RabbitMQ存在一些问题: 如果我创建了一个包含3个节点的集群,则发布/交付的节点数不能超过6000/s。 另一方面,如果我只使用一个节点,我可以发布/交付到25000/s。 这意味着,我添加的节点越多,性能就越差

但从这篇文章来看:

他们可以发表超过100万篇文章,那么他们如何做到这一点呢?
我想让RabbitMQ每秒处理超过100万条消息,这可能取决于其他因素,如网络或硬件性能

<强>阅读基准时始终考虑测试环境>/P> 至于如何提高性能,如果这是限制因素,您可以改进硬件或网络


考虑切换到SSD或在网络上使用链路聚合将是一个良好的开端。

我通过添加负载平衡器解决了这个问题。 生产者将数据发送到负载平衡器。另一方面,负载平衡器id连接到rabbitmq的许多节点,但这些节点之间没有连接(以避免影响性能的同步)。
因此,通过这种方式,我可以倍增吞吐量(例如:3个节点=3倍吞吐量)。

您是在使用这些消息,还是只发布消息?我有一个高效的消费者和许多生产者,但生产者每秒可以发送90多万条消息。问题是Rabbitmq不能处理超过22000条消息/秒(在单个节点中),但是如果我使用集群(用于容错问题),性能会恶化,这不是问题所在。在那个基准测试中,他们使用了一个拥有32台机器的集群,但如果我尝试同样的方法,我甚至不能每秒处理超过10条消息,因为对于每个添加的节点,性能都会变得糟糕。只是出于好奇,在这种情况下,您是如何订阅多个节点的?(再次通过负载平衡器或其他策略)