24

我正在研究找出我们未来产品的消息传递解决方案,但我无法真正弄清楚这一点。

有一堆 AMQP 0.9.1 实现(RabbitMQ、Apache Qpid、OpenAMQ 等等),但没有 AMQP 1.0 实现,尽管 1.0 已在 2011 年 10 月完成。好吧,除了 SwiftMQ [1]。

阅读 1.0,它似乎与 1.0 之前的规范大相径庭,因此似乎可以理解,对工作正常的东西进行重大重写的热情不大。事实上,我不明白为什么 RabbitMQ 和其他人不会直接决定迁移到 ZeroMQ 而不是 AMQP 1.0。

尽管如此,我仍然找不到 1.0 之前的 AMQP 规范的实现者对此的任何明确声明,除了一些模糊的承诺,例如“努力始终实现最新的 AMQP 规范”。

编辑: RabbitMQ 实际上确实说

RabbitMQ 的未来版本将实现 AMQP 1.0。请联系我们。

但是,有些事情告诉我,该声明已有 3 年多的历史了,即它早于 AMQP 1.0 的发布。

那么是否有任何迹象表明 AMQP 1.0 可能成为标准,除了主要银行和微软支持它的事实吗?后者顺便说一句。没有自己的实现。

似乎 AMQP 0.9.1 比 1.0 更标准。

嗯,有https://github.com/rabbitmq/rabbitmq-amqp1.0,它的自称状态是原型,显然有半年没有工作了。

[1] 我对 SwiftMQ 的第一印象是通过它的作者对 Spring 缺乏 AMQP 支持的咆哮,这也是我暂时不考虑它的原因。我不想指望那个家伙的支持

4

6 回答 6

16

AMQP 1.0 只是名义上的 AMQP 0-9-1 的替代品。两者是如此不同,因此给它们起不同的名称可能会更清楚。

选择当前的 0-9-1 实现不会限制您:

0-9-1 定义了代理和消息传递模型,而 1.0 定义了消息传输。因此,可以将 AMQP 1.0 传输与 0-9-1 结合起来,正如 RabbitMQ 在 2011 年纽约 AMQP 1.0 会议上所展示的那样。因为它是一种传输,所以 AMQP 1.0 也可以附加到专有和/或封闭的非免版税经纪人。

AMQP 1.0 刚刚进入“为期 60 天的公共审查期,以准备成员投票将其批准为 OASIS 标准”。

“为期 60 天的公开审查从 2012 年 8 月 14 日开始,到 2012 年 10 月 13 日结束。

这是一个公开的评论邀请。OASIS 征求潜在用户、开发人员和其他人(无论是否为 OASIS 成员)的反馈,以提高其技术工作的互操作性和质量。”

完整的细节在这里:

https://www.oasis-open.org/news/announcements/60-day-public-review-for-advanced-message-queueing-protocol-amqp-v1-0-candidate-o

于 2012-08-17T10:39:50.887 回答
8

OASIS AMQP 1.0 标准本周获得批准,请参阅https://www.oasis-open.org/news/pr/amqp-1-0-approval。就 1.0 实现而言,现在还为时过早,而且我知道正在进行很多开发,但是,到目前为止,这里有一个可用组件的列表:

经纪人:

客户端库:

于 2012-11-03T05:35:04.393 回答
5

根据RabbitMQ 团队的声明,我可以找到最新的,根据他们过时的规范页面,

是 AMQP 工作组的积极参与者,该工作组旨在今年提供可实施的 AMQP 1.0 草案。

这是来自 RabbitMQ 的Simon MacMullen 2012 年 1 月的消息(省略号,强调我的):

另外,为什么 RabbitMQ 会考虑不支持 1.0?是认为它可能不会被行业采用,还是其他什么?

[..]它与 0-9-1 的差异如此之大,以至于我认为它确实是一个不同的协议,尽管名称如此。[..]

所以是的,我想支持它,但我也想支持 MQTT 和 SQS 以及 [..]

而且它可能不会看到太多的行业采用,[..] 而且不想抱怨太多,它相当沉重和复杂,所以为了适当地支持它,我们会考虑不要做很多我们想做的其他事情.

当然,如果 AMQP 1.0 大幅起飞,那么这很可能会改变一切

来源:https ://groups.google.com/d/topic/rabbitmq-discuss/9Hj0FzgyLQk/discussion

于 2012-08-15T00:20:07.000 回答
3

还有其他 1.0 实现。即将发布的 Qpid 版本(可能会在接下来的几周内发布)将为 JMS 客户端和 Java 代理提供 1.0 支持。对其他组件的 1.0 支持的工作正在进行中(针对后续版本),并且基于新的质子库,该库旨在作为一种简单的方式将 1.0 支持添加到现有代理或其他受益于的系统1.0 支持。因此,Qpid 项目肯定致力于全面支持 1.0,它最终将取代所有以前的版本。API 旨在简化向 1.0 的过渡。

于 2012-08-13T09:18:40.450 回答
1

悲伤,但特别是支持是您可以依靠我的东西。;-)

要回答您的问题等待是否有意义:是的!为什么?看看质子

Proton 基于 AMQP 1.0 消息传递标准。

于 2012-08-13T14:03:50.327 回答
0

根据http://geekswithblogs.net/michaelstephenson/archive/2012/08/12/150399.aspx

AMQP 目前不支持本地或云中的服务总线,但是有一个网络广播解释了微软对 AMQP 的立场,这听起来像是未来版本中的一个重要功能

所以:

等待有意义吗?

我想可以公平地说答案是:

  • 尽管有最初的热情,但 MS 仍然不存在,AMQP我在公告和最近发布的 Service Bus for Windows Server 更新的文档中找不到任何提及:MS 方面有消息,请参阅 David Ingham 的回答。
  • the upcoming Qpid release (probably available in the next couple of weeks) will have 1.0 support for the JMS client and the Java broker,那是 11 周前。预测当然很难,但事实上,它仍然不在这里。

因此,从最近的公告和声明来看,除了 SwiftMQ 之外,没有任何可行的 AMQP 1.0 实现,也没有太多的热情。我希望 Qpid 很快就会发布,毕竟 1.0 起草者是该项目的成员 - 但如果不是,那就像棺材上的最后一颗钉子。

无论如何,AMQP 1.0 并未被广泛采用,并且没有可靠的迹象表明它会在可预见的将来变得如此。

于 2012-10-29T23:45:50.893 回答