Abi*_*bie 646 activemq-classic jms message-queue rabbitmq zeromq
我们有兴趣听听ActiveMQ与RabbitMQ和ZeroMQ的优缺点.还欢迎有关任何其他有趣的消息队列的信息.
Jul*_*ien 342
编辑:我的初步答案非常关注AMQP.我决定重写它以提供关于该主题的更广泛的观点.
这3种消息传递技术在构建分布式系统时有不同的方法
RabbitMQ是AMQP协议的领先实现之一(以及Apache Qpid).因此,它实现了代理体系结构,这意味着消息在发送到客户端之前在中心节点上排队.这种方法使RabbitMQ非常易于使用和部署,因为只需几行代码就可以支持路由,负载平衡或持久消息队列等高级方案.但是,它也使其可扩展性降低,"慢",因为中央节点增加了延迟并且消息包络非常大.
ZeroMq是一个非常轻量级的消息系统,专为高吞吐量/低延迟场景而设计,例如您可以在金融领域找到的场景.Zmq支持许多高级消息传递方案,但与RabbitMQ相反,您必须通过组合框架的各个部分(例如:套接字和设备)来自己实现大部分消息.Zmq非常灵活,但你必须学习80页左右的指南(我推荐阅读任何编写分布式系统的人,即使你不使用Zmq),然后才能做更复杂的事情而不是发送消息两个同伴之间.
ActiveMQ处于中间地带.与Zmq一样,它可以与代理和P2P拓扑一起部署.与RabbitMQ一样,实现高级方案更容易,但通常以原始性能为代价.这是消息传递的瑞士军刀:-).
最后,所有3个产品:
And*_*ich 174
为什么你会想念Sparrow,Starling,Kestrel,Amazon SQS,Beanstalkd,Kafka,IronMQ?
消息队列服务器
消息队列服务器有各种语言,Erlang(RabbitMQ),C(beanstalkd),Ruby(Starling或Sparrow),Scala(Kestrel,Kafka)或Java(ActiveMQ).可以在这里找到简短的概述
麻雀
欧椋鸟
红隼
的RabbitMQ
Apache ActiveMQ
Beanstalkd
亚马逊SQS
卡夫卡
ZMQ
EagleMQ
IronMQ
我希望这对我们有所帮助. 资源
Fly*_*wat 83
比您想要了解的更多信息:
http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes
只是详细说明保罗在评论中添加的内容.上面提到的页面在2010年之后已经死了,所以请阅读一小撮盐.很多东西已经在3年内改变了.

san*_*ole 71
这真的取决于你的用例.
将0MQ与ActiveMQ或RabbitMQ进行比较是不公平的.ActiveMQ和RabbitMQ是需要安装和管理的消息系统.它们提供的功能比ZeroMQ要多得多.他们有真正的持久性队列,支持交易等.
ZeroMQ是一个轻量级的面向消息的套接字实现.它也适用于进程内异步编程.可以在ZeroMQ上运行"企业消息系统",但您必须自己实施很多.
所以:
ActiveMQ,RabbitMQ,Websphere MQ和MSMQ是"企业消息队列"
ZeroMQ是面向消息的IPC库.
小智 22
我没有使用过ActiveMQ或RabbitMQ但是使用过ZeroMQ.我在ZeroMQ和ActiveMQ等之间看到的最大区别在于0MQ是无代理的,并且没有内置的可靠性来进行消息传递.如果您正在寻找一个易于使用的消息传递API,支持许多消息模式,传输,平台和语言绑定,那么0MQ绝对值得一看.如果您正在寻找一个完整的消息传递平台,那么0MQ可能不适合该账单.
有关如何使用0MQ的大量示例,请参见www.zeromq.org/docs:cookbook.
我成功地使用0MQ在电力使用监控应用程序中传递消息(请参阅http://rwscott.co.uk/2010/06/14/currentcost-envi-cc128-part-1/)
Nic*_*ick 14
我正在使用zeroMQ.我想要一个简单的消息传递系统,我不需要代理的复杂性.我也不想要一个庞大的面向Java的企业系统.
如果你想要一个快速,简单的系统,你需要支持多种语言(我使用C和.net),那么我建议你看看0MQ.
Noc*_*ris 10
我只能加上关于ActiveMQ的2美分,但因为这是最流行的一个:
您想要写的语言可能很重要.尽管ActiveMQ确实拥有大多数客户端,但与Java库相比,它们的C#实现远非完整.
这意味着一些基本功能是片状的(故障转移协议......好吧......在某些情况下失败,没有重新传送支持)而其他根本就不存在.由于.NET似乎对项目来说并不是那么重要,因此开发速度相当慢,并且似乎没有任何发布计划.Trunk经常被破坏,所以如果你考虑到这一点,你可能想要考虑为项目做出贡献,如果你想要继续前进的话.
然后有ActiveMQ本身,它有很多很好的功能,但也有一些非常奇怪的问题.出于稳定性原因,我们使用activemq的Fuse(Progress)版本,但即便如此,您仍需要记住几个奇怪的"错误":
总而言之,如果你能解决它的问题,这是一个非常好的产品:
A)在使用.NET时不害怕积极参与
B)在java中开发;-)
在http://bhavin.directi.com/rabbitmq-vs-apache-activemq-vs-apache-qpid/上对RabbitMQ ActiveMQ和QPID的功能和性能进行了比较.
就个人而言,我已经尝试了以上三种.根据我的说法,RabbitMQ是最好的性能,但它没有故障转移和恢复选项.ActiveMQ功能最多,但速度较慢.
更新: HornetQ也是您可以查看的选项,它是JMS Complaint,如果您正在寻找基于JMS的解决方案,它是比ActiveMQ更好的选择.
小智 5
很少有应用程序具有与ActiveMQ一样多的调整配置.使ActiveMQ脱颖而出的一些功能包括:
可配置的预取大小.可配置的线程.可配置的故障转移.对生产者的可配置管理通知.......详细信息:
http://activemq.net/blog http://activemq.apache.org
| 归档时间: |
|
| 查看次数: |
432333 次 |
| 最近记录: |