ZeroMQ,RabbitMQ和Apache Qpid之间的性能比较
我需要一个高性能的消息总线为我的应用程序,所以我评估性能ZeroMQ,RabbitMQ和Apache Qpid。为了衡量性能,我正在运行一个测试程序,该程序使用消息队列实现之一发布10,000条消息,并在同一台计算机上运行另一个进程以消耗这10,000条消息。然后,我记录发布的第一条消息和收到的最后一条消息之间的时间差。 以下是我用于比较的设置。 RabbitMQ:我使用了“扇出”类型交换和默认配置的队列。我使用RabbitMQ C客户端库。 ZeroMQ:我的发布者tcp://localhost:port1使用ZMQ_PUSH套接字发布,我的代理侦听tcp://localhost:port1并将消息重新发送到tcp:// localhost:port2,而我的使用者tcp://localhost:port2使用ZMQ_PULL套接字侦听。我正在使用代理而不是对等通信,ZeroMQ以使性能比较与使用代理的其他消息队列实现公平。 QpidC ++消息代理:我使用“扇出”类型交换和默认配置的队列。我使用了Qpid C ++客户端库。 以下是性能结果: RabbitMQ:大约需要1秒才能收到10,000条消息。 ZeroMQ:大约需要15毫秒来接收10,000条消息。 Qpid:大约需要4秒钟才能收到10,000条消息。 问题: 是否有人在消息队列之间运行类似的性能比较?然后,我想将我的结果与您的结果进行比较。 有什么方法可以调整RabbitMQ或Qpid使其性能更好? 注意: 测试是在具有两个分配处理器的虚拟机上完成的。结果因不同的硬件而异,但是我主要对MQ产品的相对性能感兴趣。