> > 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. -- Regards, Eric Windisch
_______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev