[openstack-dev] RabbitMQ Scaling

Vishvananda Ishaya vishvananda at gmail.com
Tue Nov 13 19:24:03 UTC 2012


On Nov 13, 2012, at 11:06 AM, Russell Bryant <rbryant at redhat.com> wrote:

> 
> The dynamic creation is of *queues*, right?  Not of exchanges and queues
> as specified before?  It only seems valuable to have dynamic queues for
> responses, which I'm pretty sure is how it works.
> 
> The use of temporary queues for responses is discussed in the AMQP spec
> (is at least in the 0-9-1 version I just pulled up), so what we're doing
> seems to be recommended in general.
> 
> My concern with using static reply queues is the uncertainty that comes
> along with that.  When you create a temporary queue *only* for the
> purpose of receiving a response, you know that the only thing you're
> going to get is the response.  When you start leaving queues around and
> reusing them, it's not guaranteed anymore.  That would be my biggest
> concern.

> 
> It may be doable in a way that's safe enough.  We just need to be *very*
> careful.

I guess I'm not seeing what is scary about this. It seems like we can just
create a single response queue, and keep a dictionary of calls by message id.
When we get a response we wake up the greenthread that was waiting on the
response. If there isn't one, we log a warning and move on. This seems
preferrable to just having the message sit in the queue forever (which can
happen currently).

Vish




More information about the OpenStack-dev mailing list