<div dir="ltr"><div><div><div><div>Hi,<br><br></div>Keep in mind the rabbit driver creates a single reply queue per *transport* - that is per call to oslo.messaging's get_transport/get_rpc_transport/get_notification_transport.<br><br></div>If you have multiple RPCClients sharing the same transport, then all clients issuing RPC calls over that transport will use the same reply queue (and multiplex incoming replies using a unique id in the reply itself).  See <a href="https://git.openstack.org/cgit/openstack/oslo.messaging/tree/oslo_messaging/_drivers/amqpdriver.py?h=stable/newton#n452">https://git.openstack.org/cgit/openstack/oslo.messaging/tree/oslo_messaging/_drivers/amqpdriver.py?h=stable/newton#n452</a> for all the details.<br><br></div>But it cannot share the reply queue across transports - and certainly not across processes :)<br><br></div>-K <br><div><div><div><div><br><br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 7, 2017 at 10:29 PM, int32bit <span dir="ltr"><<a href="mailto:krystism@gmail.com" target="_blank">krystism@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>Currently, I find our RPC client always need create a new callback queue for every call requests to track the reply belongs, at least in Newton. That's pretty inefficient and lead to poor performance. I also  find some RPC implementations no need to create a new queue, they track the request and response by correlation id in message header(rabbitmq well supports, not sure is it AMQP standard?). The rabbitmq official document provide a simple demo, see [1].</div><div><br></div><div>So I am confused that why our oslo.messaging doesn't use this way to optimize RPC performance. Is it for any consideration or do I miss some potential cases?</div><div><br></div><div>Thanks for any reply and discussion!</div><div><br></div><div><br></div><div>[1] <a href="https://www.rabbitmq.com/tutorials/tutorial-six-python.html" target="_blank">https://www.rabbitmq.com/<wbr>tutorials/tutorial-six-python.<wbr>html</a>.</div><div><br></div><div> </div></div>
<br>______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Ken Giusti  (<a href="mailto:kgiusti@gmail.com" target="_blank">kgiusti@gmail.com</a>)</div>
</div>