commit 6b9e268661b11f981083bac41033223888a6dfcd
Author: Evgeniy L <email address hidden>
Date: Thu Aug 20 13:32:39 2015 +0300
Generate unique names for service queue
RabbitMQ supports such feature as temporary
queues with autogenerated names, it means that when you
define a queue, you leave the name empty, so RabbitMQ generates
a unique name with "amq.gen-" prefix, after fixing a bug [1]
with heartbeats, we got working reconnects in case of connectivity
issues. When reconnect happens, for queues with autogenerated
names RabbitMQ behaves strangely, it does not delete previous queues
but creates new one, so for a single worker there is old/not
used queue and the new one. When new message comes to exchange
it has 50% chance to get into working queue. If there more
reconnects happen, more dead queues are created and we have
less chance to get message in working queue.
In order to prevent that, each worker should have unique
name for its service queue, which it will use during worker's
life time. When reconnect happens, it will try to connect to
the same queue which was used before.
Reviewed: https:/ /review. openstack. org/215064 /git.openstack. org/cgit/ stackforge/ fuel-astute/ commit/ ?id=6b9e268661b 11f981083bac410 33223888a6dfcd
Committed: https:/
Submitter: Jenkins
Branch: master
commit 6b9e268661b11f9 81083bac4103322 3888a6dfcd
Author: Evgeniy L <email address hidden>
Date: Thu Aug 20 13:32:39 2015 +0300
Generate unique names for service queue
RabbitMQ supports such feature as temporary
queues with autogenerated names, it means that when you
define a queue, you leave the name empty, so RabbitMQ generates
a unique name with "amq.gen-" prefix, after fixing a bug [1]
with heartbeats, we got working reconnects in case of connectivity
issues. When reconnect happens, for queues with autogenerated
names RabbitMQ behaves strangely, it does not delete previous queues
but creates new one, so for a single worker there is old/not
used queue and the new one. When new message comes to exchange
it has 50% chance to get into working queue. If there more
reconnects happen, more dead queues are created and we have
less chance to get message in working queue.
In order to prevent that, each worker should have unique
name for its service queue, which it will use during worker's
life time. When reconnect happens, it will try to connect to
the same queue which was used before.
RabbitMQ version: 3.3.5 /bugs.launchpad .net/fuel/ +bug/1483182
[1] https:/
Change-Id: I6a92319af986ee 2f76d07ce86d14a 6875b836412
Closes-bug: #1485895