ActiveMQ或RabbitMQ或ZeroMQ或

我们有兴趣听听有关ActiveMQ vs RabbitMQ vs ZeroMQ的优点和缺点的经验。 有关任何其他有趣的消息队列的信息也是受欢迎的。


编辑:我最初的回答非常关注AMQP。 我决定重写它以提供更广泛的观点。

这三种消息传递技术在构建分布式系统时有不同的方法

RabbitMQ是AMQP协议的主要实现之一(与Apache Qpid一起)。 因此,它实现了代理体系结构,这意味着消息在发送到客户机之前在中央节点上排队。 这种方法使RabbitMQ非常易于使用和部署,因为只需几行代码即可支持路由,负载平衡或持久消息队列等高级场景。 但是,它也使得它不易扩展和“更慢”,因为中央节点增加了延迟并且信息包络非常大。

ZeroMq是一款非常轻量级的消息系统,专为高吞吐量/低延迟情况设计,就像您可以在金融领域找到的那样。 Zmq支持许多先进的消息传递方案,但与RabbitMQ相反,您必须通过组合各种框架(例如:套接字和设备)来实现其中的大部分。 Zmq非常灵活,但您必须先研究80页左右的指南(我建议您阅读任何编写分布式系统的人,即使您不使用Zmq),然后才能执行比发送消息更复杂的任何内容在两个同行之间。

ActiveMQ处于中间地带。 与Zmq一样,它可以同时部署代理和P2P拓扑。 像RabbitMQ一样,实现高级方案更容易,但通常以原始性能为代价。 这是瑞士军队的消息传递工具:-)。

最后,所有3种产品:

  • 拥有最常用语言的客户端API(C ++,Java,.Net,Python,Php,Ruby ......)
  • 有很强的文档
  • 得到积极支持

  • 你为什么想念Sparrow,Starling,Kestrel,Amazon SQS,Beanstalkd,Kafka,IronMQ?

    消息队列服务器

    消息队列服务器有各种语言,Erlang(RabbitMQ),C(beanstalkd),Ruby(Starling或Sparrow),Scala(Kestrel,Kafka)或Java(ActiveMQ)。 一个简短的概述可以在这里找到

    麻雀

  • 由Alex MacCaw编写
  • Sparrow是一个用Ruby编写的轻量级队列,“可以说memcache”
  • 欧椋鸟

  • 由布莱恩库克在Twitter撰写
  • Starling是基于MemCached的Message Queue Server
  • 用Ruby编写
  • 将作业存储在内存中(消息队列)
  • 文档:一些很好的教程,例如关于starling和workling的railscast或者关于starling的博客文章
  • 红隼

  • 由罗比指针撰写
  • 斯卡拉克隆编写的Scala(Starling从Ruby到Sc​​ala的港口)
  • 队列存储在内存中,但已登录到磁盘上
  • 的RabbitMQ

  • RabbitMQ是Erlang的消息队列服务器
  • 将作业存储在内存中(消息队列)
  • Apache ActiveMQ

  • ActiveMQ是Java中的开源消息代理
  • Beanstalkd

  • 由Philotic公司编写,以提高Facebook应用程序的响应时间
  • 内存中的工作队列服务主要用C编写
  • Docu:http://nubyonrails.com/articles/about-this-blog-beanstalk-messaging-queue
  • 亚马逊SQS

  • 亚马逊简单队列服务
  • 卡夫卡

  • 在斯卡拉LinkedIn撰写
  • LinkedIn使用它来卸载所有页面和其他视图的处理
  • 默认使用持久性,对热数据使用操作系统磁盘缓存(具有更高的吞吐量,然后上述任何一种启用持久性的吞吐量)
  • 支持在线作为离线处理
  • ZMQ

  • 作为并发框架的套接字库
  • 比TCP更快,适用于集群产品和超级计算
  • 通过inproc,IPC,TCP和多播传送消息
  • 通过扇出,pubsub,管道,请求回复连接N对N
  • 用于可扩展多核消息传递应用程序的Asynch I / O
  • EagleMQ

  • EagleMQ是一个开源,高性能,轻量级的队列管理器。
  • 写在C
  • 将所有数据存储在内存中并支持持久性。
  • 它有自己的协议。 支持队列,路线和频道的工作。
  • IronMQ

  • IronMQ
  • 写在Go中
  • 完全管理的队列服务
  • 可用于云版本和本地
  • 我希望这会对我们有所帮助。 资源


    比您想知道的更多信息:

    http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes


    UPDATE

    只是阐述了保罗在评论中加入的内容。 上面提到的页面在2010年后就已经死了,所以用一小撮盐阅读。 很多东西在3年内都被改变了。

    Wiki的历史

    链接地址: http://www.djcxy.com/p/18363.html

    上一篇: ActiveMQ or RabbitMQ or ZeroMQ or

    下一篇: stopps Actiity