现在的位置: 首页 > 综合 > 正文

集中消息队列AMQP的比较

2014年01月19日 ⁄ 综合 ⁄ 共 849字 ⁄ 字号 评论关闭

最近的工作需要进行一些AMQP的学习,需要恶补一下MQ的支持,现将一些收集翻译的资料和自己的理解整理一下,已被后观。初次涉及MQ的时候,多少有点以为,为什么用这个而不用那个,用这个有什么好处,为了说服自己,开始学习。

建立分布式系统用到的三种不同的技术的消息队列:

RabbitMQ:
是一个实现了AMQP协议的处于领导地位的队列实现。 同时实现了一个经纪人(broker)构架,这意味着消息在发送给客户端时先在中心队列排队。
 这种实现途径始 RabbitMQ 极易使用和部署,因为象路由(routing),负载均衡(load blance)或者是持久化消息队列支持的多种场景只需要很少的代码就能够实现。
但是因为中心节点这种实现方式增加了延迟和消息分钟的成本,使得特相应地缺少了可扩展性,并且显得变慢了。

   VMware 云实现中推介的组件。

ZeroMq:
 
轻量级的消息系统,尤其针对大吞吐量地掩饰的需求场景, 比如在现实的经融交易系统中。ZMQ能够实现RabbitMQ不擅长的高级/复杂的队列, 但是开发人员需要自己组合多种技术框架, 技术上的复杂度是对这个MQ能够应用成功的挑战。ZMQ非常灵活,你需要研究一大堆资料:( 

  ZeroMQ之前没有太多出现VMware的身影,后来看到了VMWare的影子,可能进行了资助,同时也让我感觉VMWare进行了一大堆与云相关的底层技术积累。

ActiveMQ 处在俩者中间,由于是Apache的东西,所以最早知道的是这个MQ。
类似于ZMQ,它能够以代理人和点对点的技术实现队列;同时类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景(被称为消息队列的瑞士军刀)。

最后,他们三个都支持:

  • 均支持常用的多种语言客户端 (C++, Java, .Net, Python, Php, Ruby, …)
  • 文档支持到位
  • 均可获得在线支持
其他一些队列列表,未逐个研究:
     Apache Qpid, Sparrow,Starling,Kestrel,Beanstalkd,Amazon
SQS,
Kafka

【上篇】
【下篇】

抱歉!评论已关闭.