Where are the AMQP 1.0 implementations? Would it make sense to wait?

I'm doing research to figure out what messaging solution to settle on for our future products and I can't really figure this one out.

There is a bunch of AMQP 0.9.1 implementations (RabbitMQ, Apache Qpid, OpenAMQ, to name a few), but no AMQP 1.0 implementation, although 1.0 has been finalized October 2011. Well, except for SwiftMQ [1].

Reading up on 1.0, it seems to be a major departure from the pre-1.0 spec, so it seems understandable that there's little enthusiasm for a major rewrite of something that is working fine. In fact, I can't see why RabbitMQ and others wouldn't just decide to migrate to ZeroMQ instead of AMQP 1.0.

Still, I cannot find any clear statement on that by implementors of the pre-1.0 AMQP spec, except some vague commitments like 'striving to always implement the latest AMQP spec'.

Edit: RabbitMQ actually does say

A future version of RabbitMQ will implement AMQP 1.0. Please contact us for details.

However, something tells me that statement is more than 3 years old, ie it predates the release of AMQP 1.0.

So are there any indications AMQP 1.0 could become a standard, except for the fact that major banks - and Microsoft - are behind it? The latter btw. without an implementation of its own.

It almost seems like AMQP 0.9.1 is more standard than 1.0 will be.

Well, there's https://github.com/rabbitmq/rabbitmq-amqp1.0, it's self-proclaimed status is prototype, with no work on it apparently for half a year.

[1] My first impression of SwiftMQ I got by means of its author's rant on Spring's lacking AMQP support, which is why I'm not considering it for the time being. I wouldn't want to count on support from that guy.


AMQP 1.0 is an alternative to AMQP 0-9-1 in name only. The two are so different that it might have been clearer to give them different names.

Choosing a current 0-9-1 implementation does not limit you:

0-9-1 defines a broker and messaging model, while 1.0 defines a messaging transport. Therefore it is possible to combine the AMQP 1.0 transport with 0-9-1, as RabbitMQ demonstrated at the AMQP 1.0 conference in NYC in 2011. Because it is a transport, AMQP 1.0 can also be attached to proprietary and/or closed non-royalty-free brokers.

AMQP 1.0 has just entered "a 60-day public review period in preparation for a member ballot to consider its approval as an OASIS Standard".

"The 60-day public review starts 14 August 2012 and ends 13 October 2012.

This is an open invitation to comment. OASIS solicits feedback from potential users, developers and others, whether OASIS members or not, for the sake of improving the interoperability and quality of its technical work."

Full details here:

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


The OASIS AMQP 1.0 Standard was ratified this week, see https://www.oasis-open.org/news/pr/amqp-1-0-approval. In terms of 1.0 implementations, it's still a little early and I know there's a lot of development going on, but, as of now, here's a list of available components:

Brokers:

  • SwiftMQ - http://www.swiftmq.com/downloads/
  • Apache Qpid Java broker (0.18 release) - http://qpid.apache.org
  • Microsoft Azure Service Bus - http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-amqp-overview/
  • Client libraries:

  • SwiftMQ Java client library - http://www.swiftmq.com/downloads/
  • Apache Qpid JMS client library (0.18 release) - http://qpid.apache.com
  • Apache Qpid Proton-C - C client lib inc. bindings for Python and PHP - http://qpid.apache.org/proton/
  • Apache Qpid Proton-J - Java client lib - http://qpid.apache.org/proton/
  • Microsoft Azure Service Bus .NET client - http://nuget.org/packages/ServiceBus.Preview

  • The most recent that I could find in terms of statement from the RabbitMQ team , which, according to their outdated specification page also

    is an active participant in the AMQP Working Group, which aims to deliver an implementable AMQP 1.0 draft this year.

    is this message from RabbitMQ's Simon MacMullen from January 2012 (ellipsis, emphasis mine):

    Also, why would RabbitMQ consider not supporting 1.0? Is the thinking that it may not see industry adoption, or something else?

    [..] it's such a big difference from 0-9-1 that I view it as a different protocol really, despite the name. [..]

    So yes, I'd like to support it, but I'd also like to support MQTT and SQS and [..]

    And it may not see much industry adoption , [..] And without wanting to complain too much, it is rather heavy and complicated , so to support it properly we'd be looking at not doing quite a lot of other stuff we want to.

    Of course, if AMQP 1.0 takes off substantially then that could well change things .

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

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

    上一篇: 消息代理与MOM(消息

    下一篇: AMQP 1.0实施在哪里? 等待是否有意义?