RabbitMQ поп-операция атомарность - PullRequest
0 голосов
/ 19 апреля 2011

Кто-нибудь знает, является ли операция pop в очереди RabbitMQ атомарной?

У меня есть несколько процессов, читающих из одной и той же очереди (очередь помечена как долговечная, работающая на версии 2.0.0), и я вижу довольно странное поведение.

1 Ответ

3 голосов
/ 03 мая 2011

Если несколько процессов потребляют сообщения из одной и той же очереди , то они никогда не должны использовать одно и то же сообщение.

Вот предостережения:

  1. Если сообщение было доставлено брокером одному из ваших потребителей, и оно отклоняет сообщение (или завершает работу до получениявозможность подтвердить это), тогда брокер поставит его обратно в ту же очередь, и он будет доставлен одному из ваших оставшихся активных потребителей.

  2. Если ваши потребители вытягивают из разных очередей -- каждый с соответствующей привязкой - тогда брокер помещает копии сообщения в каждую очередь, и каждый потребитель получает копию того же сообщения.

...