Use topic exchange for rpc.call replies
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
oslo.messaging |
New
|
Undecided
|
Unassigned |
Bug Description
Current rpc model uses direct exchanges for rpc.call replies, and this results in too many direct "reply_<uuid>" exchanges and this makes rabbitmq maintenance as well as message tracing difficult. In the attached rabbitmq report, there are 25136 exchanges in total, of which 25071 are "reply_" exchanges. For reference there are only 30481 queues.
It would be easier if topic consumer directly publish reply to the control exchange with routing key simply be "reply.<uuid>" or even with more keys in there. Also, if topic publisher only subscribe to "reply.*" from a handful of control exchanges instead of every "reply_<uuid>" exchanges, there will be much less bindings for rabbitmq. Not only easier to maintain, but less chance for binding churns when service goes down and back up again.
A change was made a while ago to have RPC replies share the default exchange.
See https:/ /bugs.launchpad .net/oslo. messaging/ +bug/1789177
What version oslo.messaging are you using?