我们有兴趣听听ActiveMQ vs RabbitMQ vs ZeroMQ的优缺点。还欢迎提供有关任何其他有趣的消息队列的信息。


当前回答

关于ZeroMQ(又名0MQ),正如您可能已经知道的那样,它是每秒钟获得最多消息的一种(上次我检查时,在其引用服务器上大约是每秒钟400万条消息),但是您可能也已经知道,不存在相关文档。您将很难找到如何启动服务器,更不用说如何使用它们了。我想这就是为什么还没有人贡献0MQ的部分原因。

玩得开心!

其他回答

我只能对ActiveMQ补充我的2分,但由于这是最受欢迎的之一:

你想写的语言可能很重要。虽然ActiveMQ确实有一个客户端,但与Java库相比,他们的c#实现还远远不够完整。

这意味着一些基本功能是不可靠的(故障转移协议……嗯…在某些情况下失败,没有重新交付支持)和其他根本不存在。由于. net对项目似乎不是那么重要,所以开发相当缓慢,似乎也没有任何发布计划。Trunk经常是坏的,所以如果你真的考虑到这一点,如果你想让事情继续下去,你可能会考虑为项目做出贡献。

然后是ActiveMQ本身,它有很多不错的功能,但也有一些非常奇怪的问题。我们使用Fuse (Progress)版本的activemq出于稳定的原因,但即使这样,也有几个奇怪的“bug”,你要记住:

在某些情况下停止发送消息的代理 日志错误使队列显示不再存在的消息(它们没有被传递给消费者,但仍然) 优先级仍然没有实现(自从人类诞生以来就在问题列表上) 等等。

总而言之,如果你能接受它的问题,这是一个非常好的产品:

A)在使用。net时不害怕主动参与 B)用java开发;-)

在这篇博文的评论中有一些关于Twitter编写他们自己的消息队列的讨论,这可能会很有趣。

史蒂夫承受了很大的负荷和压力 ActiveMQ, RabbitMQ等的测试。 ActiveMQ实际上相当慢(非常慢) 比Kestrel慢),RabbitMQ 总是因为太多而崩溃 生产者和太少的消费者。

你可能不会有像twitter一样的初始加载:)

关于ZeroMQ(又名0MQ),正如您可能已经知道的那样,它是每秒钟获得最多消息的一种(上次我检查时,在其引用服务器上大约是每秒钟400万条消息),但是您可能也已经知道,不存在相关文档。您将很难找到如何启动服务器,更不用说如何使用它们了。我想这就是为什么还没有人贡献0MQ的部分原因。

玩得开心!

这实际上取决于您的用例。

比较0MQ与ActiveMQ或RabbitMQ是不公平的。 ActiveMQ和RabbitMQ是需要安装和管理的消息传递系统。 他们提供了比ZeroMQ更多的功能。他们有真正的持久队列,支持事务等。

ZeroMQ是一个轻量级的面向消息的套接字实现。它也适用于进程内异步编程。在ZeroMQ上运行“企业消息传递系统”是可能的,但您必须自己实现很多工作。

So:

ActiveMQ, RabbitMQ, Websphere MQ和MSMQ是“企业消息队列”

ZeroMQ是一个面向消息的IPC库。

到目前为止,我已经在生产环境中使用ActiveMQ大约3年了。虽然它完成了工作,但排列正常工作且没有错误的客户端库版本可能是一个问题。我们目前正在考虑过渡到RabbitMQ。