[openstack-dev] AMQP Version upgrade plans?

Eric Windisch eric at cloudscaling.com
Mon Jul 8 16:56:46 UTC 2013

> > I actually have a big interest in adding support for AMQP 1.0.  One of
> > the *really* interesting things with AMQP 1.0 that is relevant for
> > OpenStack is that it is not tied to using a message broker.  You can use
> > it in both a peer-to-peer and a brokered way.  This is interesting,
> > because depending on the messaging pattern we're using, we may want one
> > vs the other in different parts of OpenStack.
> > As for the specifics to doing this, the only AMQP 1.0 client I know of
> > is Proton.  It does have Python bindings.
> >
> AMQP 0-{8,9,10} are asymmetric client/server protocols with a well-defined
> server/broker behavior. AMQP 1.0, by contrast, is a symmetric wire-line
> protocol, without a requirement for a broker at all.  As Russell points
> out, this opens the possibility of brokerless peer-to-peer messaging.
> The problem with peer-to-peer at the transport is that it doesn't scale
> well, doesn't provide fanout, requires complicated URL management, and
> causes problems with firewalls.  It might be appropriate for a small number
> of use cases, but a broker or some other form of intermediary is still
> needed.

The ZeroMQ driver in OpenStack RPC already does peer-to-peer messaging and
overcomes the fanout and other issues through code that already resides in
oslo.rpc. Most of that functionality lies in the "matchmaker" which can, as
you suggest, integrate an intermediary for the purpose of peer tracking.

I intentionally approached the ZeroMQ / MatchMaker driver design to
facilitate the use of other transports. The primary purpose of the ZeroMQ
driver is not to leverage a buzzword, but exists for the specific purpose
of offering a peer-to-peer solution.

If someone so strongly desires and prefers AMQP 1.0 over ZeroMQ for
peer-to-peer messaging that they'll write and maintain an implementation
for oslo.rpc / oslo.messaging, I'd be happy to see it introduced. I suspect
there is much code that could be shared and reused, as well.

Eric Windisch
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130708/1dce08f4/attachment.html>

More information about the OpenStack-dev mailing list