[openstack-dev] [OSLO][RPC] AMQP / ZeroMQ control_exchange vs port numbers
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
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.
More information about the OpenStack-dev