我们有兴趣听听ActiveMQ vs RabbitMQ vs ZeroMQ的优缺点。还欢迎提供有关任何其他有趣的消息队列的信息。
当前回答
如果您也对商业实现感兴趣,您应该看看my-channels中的Nirvana。
Nirvana在金融服务行业中被广泛用于大规模低延迟交易和价格分销平台。
它支持企业、网络和移动领域的各种客户端编程语言。
集群功能非常高级,如果透明的HA或负载平衡对您很重要,那么值得一试。
出于开发目的,Nirvana可以免费下载。
其他回答
There's a comparison between RabbitMQ and ActiveMQ here. Out of the box, ActiveMQ is configured to guarantee message delivery - which can give the impression its slow compared to less reliable messaging systems. You can always change the configuration for performance if you wish and get at least as good performance as any other messaging system. At least you have that option. There's a lot of information on the forums and the ActiveMQ FAQ for configuration for scaling, performance and high availability. Also, ActiveMQ will support AMQP 1.0 when the spec is finalized, together with other wire formats, like STOMP.
ActiveMQ的另一个优点是它是一个Apache项目,所以开发者社区是多样化的——而且它不局限于一家公司。
关于ZeroMQ(又名0MQ),正如您可能已经知道的那样,它是每秒钟获得最多消息的一种(上次我检查时,在其引用服务器上大约是每秒钟400万条消息),但是您可能也已经知道,不存在相关文档。您将很难找到如何启动服务器,更不用说如何使用它们了。我想这就是为什么还没有人贡献0MQ的部分原因。
玩得开心!
ZeroMQ真的是零队列!这真是个错误!它没有队列、主题、持久性,什么都没有!它只是套接字API的中间件。如果它是你看起来很酷!否则就忘了它吧!它不像activeMQ或rabbitmq。
我只能对ActiveMQ补充我的2分,但由于这是最受欢迎的之一:
你想写的语言可能很重要。虽然ActiveMQ确实有一个客户端,但与Java库相比,他们的c#实现还远远不够完整。
这意味着一些基本功能是不可靠的(故障转移协议……嗯…在某些情况下失败,没有重新交付支持)和其他根本不存在。由于. net对项目似乎不是那么重要,所以开发相当缓慢,似乎也没有任何发布计划。Trunk经常是坏的,所以如果你真的考虑到这一点,如果你想让事情继续下去,你可能会考虑为项目做出贡献。
然后是ActiveMQ本身,它有很多不错的功能,但也有一些非常奇怪的问题。我们使用Fuse (Progress)版本的activemq出于稳定的原因,但即使这样,也有几个奇怪的“bug”,你要记住:
在某些情况下停止发送消息的代理 日志错误使队列显示不再存在的消息(它们没有被传递给消费者,但仍然) 优先级仍然没有实现(自从人类诞生以来就在问题列表上) 等等。
总而言之,如果你能接受它的问题,这是一个非常好的产品:
A)在使用。net时不害怕主动参与 B)用java开发;-)
阿比,这都取决于你的用例。与其依赖别人对用例的描述,不如自由地将你的用例发布到rabbitmq讨论列表中。在推特上提问也会得到一些回应。祝福你,亚历克西斯