AMQP和ZeroMQ之间的差异

ade*_*rtc 22 distributed-computing amqp zeromq actor

最近开始研究这些AMQP(RabbitMQ,ActiveMQ)和ZeroMQ技术,对分布式系统/计算感兴趣.一直在谷歌搜索和StackOverflow'周围,找不到两者之间的明确比较.

我得到的最远的是两者不太可比,但我想知道差异.在我看来ZeroMQ更加分散(没有消息经纪人在播放中间人处理消息/ guarenteering交付)并且因此更快,但并不意味着是一个完全成熟的系统,而是需要以编程方式处理的事情,比如演员.

另一方面,AMQP似乎是一个更完善的系统,中央消息代理确保可靠的交付,但由于这一点,比ZeroMQ慢.但是,中央经纪人会造成单点故障.

也许比喻是客户/服务器与P2P?

我的发现是真的吗?另外,使用一个优于另一个的优点,缺点或用例是什么?比较使用*MQ与像Akka Actors这样的东西也会很好.

编辑多看了一下.. ZeroMQ似乎是AMQP的新竞争者,似乎要快得多,唯一的问题是采用/实现?

Pie*_*ens 19

以下是AMQP和0MQ的相当详细的比较:http://www.zeromq.org/docs:welcome-from-amqp

请注意,0MQ也是具有多个实现的协议(ZMTP)和社区.


小智 12

AMQP是一种协议.ZeroMQ是一个消息库.

AMQP提供流量控制和可靠的交付.它定义了消息的标准但可扩展的元数据(例如回复,生存时间以及任何应用程序定义的标头).ZeroMQ只提供消息定界(即将字节流分解为原子单元),并假设底层协议(例如TCP)的属性足够,或者应用程序将为ZeroMQ之上的流控制,可靠性或其他任何内容构建额外的功能.

尽管早期版本的AMQP是沿客户端/服务器线定义的,因此需要代理,但AMQP 1.0的核心是对称的对等协议.中介机构(如经纪人)的规则是最重要的.亚历克西斯比较经纪人和无经纪商的链接可以很好地描述这些中介机构可以提供的好处.AMQP定义了不同组件之间互操作性的规则 - 客户端,"智能客户端",代理,桥接器,路由器等 - 这样可以通过选择有用的部件来组成系统.

  • 对于那些无法点击该链接的人,其妙语是:APART FROM可移植性,消息框架,超快速异步I/O,支持任何人关心的每种血腥语言,庞大的社区,零价格标签,吹嘘性能,内存溢出保护,内部一致性检查负载,pub/sub和请求/回复等模式,批处理,以及对线程间传输以及TCP和组播的无缝支持,ZEROMQ只是插座! (16认同)
  • Gordon,“ZeroMQ 只是提供消息定界(即将字节流分解为原子单元)”是非常不准确的。你从哪里得到这个想法?这是一个模仿:http://www.zeromq.org/topics:omq-is-just-sockets。 (2认同)

Mic*_*lon 5

在ZeroMQ中根本没有MESSAGE QUEUES,因此得名.它仅提供了一种在其他普通套接字上使用消息传递语义的方法.

AMQP是消息队列的标准协议,旨在与处理所有消息发送和接收的消息代理一起使用.它具有许多可用的功能,因为它通过代理汇集所有消息流量.这可能听起来很慢,但实际上在数据中心内使用时非常快,主机承载延迟很小.