[openstack-dev] [OSLO][RPC] AMQP / ZeroMQ control_exchange vs port numbers

Mark McLoughlin markmc at redhat.com
Mon Apr 29 10:24:31 UTC 2013


On Wed, 2013-04-24 at 09:47 -0400, Eric Windisch wrote:
> Discussing in regard to changing the ZeroMQ ipc directory,
> and "allow to cast to other any control exchange"
> https://review.openstack.org/27351
> https://review.openstack.org/27346
> 
> 
> Basically, the fact that one can deploy each project on a different
> port number with ZeroMQ is as close an equivalent (and best practice)
> as one may get to AMQP's control_exchange.
> 
> 
> Even if we add artificial support for control_exchange to the ZeroMQ
> driver (which is possible), this won't do Ceilometer any good if
> people deploy ZeroMQ on different ports for different projects. Then,
> you'll need to add a port= kwarg to cast/call/notify, in addition to
> the control_exchange.  In fact, it seems likely that people will want
> to deploy ZeroMQ on different ports for different projects, and we
> might want to do this by default, so it *will* be a problem.
> 
> 
> Perhaps the best solution here is to bake in a numeric representation
> for each control_exchange? We'd need to manage these for each
> core/incubated project to prevent overlap. We already do this for the
> control_exchange, although as a string there is little cost to doing
> so. A bit more effort would be needed for tracking port assignments.

The way I'm thinking of an exchange is simply that it's a namespace
under which topics live:

  https://wiki.openstack.org/wiki/Oslo/Messaging#Concepts

The use case is simply that you should be able to run, say, two
instances of heat on the same messaging transport and not have their
topics conflict.

I guess you could just prefix topics in the zmq driver with the exchange
name.

Cheers,
Mark.





More information about the OpenStack-dev mailing list