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

Eric Windisch eric at cloudscaling.com
Mon Apr 29 13:43:37 UTC 2013

> My I'm thinking of an exchange is simply that it's a namespace
> under which topics live:
The discussion we were having was that we should NOT expose the control_exchange in the API unless we also expose the queue connection mechanism. The reason is that the control_exchange is presently a point of clean sharding between projects.

Each unique value of control_exchange can be safely sharded to a separate broker or, in the case of ZeroMQ, to a separate rpc_zmq_port. This latter point is important because it feeds back into the ipc_dir discussion we had; Projects can have their own IPC directory if they run on their own rpc_zmq_port.  Of course, sharding for RabbitMQ/Qpid might also be useful...
> I guess you could just prefix topics in the zmq driver with the exchange
> name.

Yes and no.  I've already run into plenty of problems by modifying topic names. That is how we're in the trouble of period-deliminators breaking ZeroMQ for some use-cases in Grizzly (thankfully, not many).   However, yes, I could put the control_exchange into the zmq message envelope, which is effectively what you're suggesting. The control_exchange will also need to be included in the IPC directory path.

Eric Windisch

More information about the OpenStack-dev mailing list