[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