В чем разница между исключительной очередью RabbitMQ и исключительным потребителем? - PullRequest
0 голосов
/ 17 октября 2018

Мне было трудно обернуться вокруг различий между exclusive queue и exclusive consumer, и мне было интересно, если я правильно понял.

Допустим, у меня есть queue, consumer1 и consumer2.

Насколько я понимаю:

исключительная очередь

Если queue равен exclusive queue и был создан только consumer1consumer1 может получить доступ к очереди, а когда consumer1 выходит из строя, queue удаляется.Звучит так, как будто сообщения затем теряются.

эксклюзивный потребитель

Если queue НЕ является эксклюзивным и был создан consumer1, то оба consumer1 и consumer2 может читать с него.Если consumer1 падает, consumer2 может начать с того места, где остановился.Если consumer1 равен exclusive consumer и сначала запускает подписку, то consumer2 не может получить доступ к queue, пока он заблокирован consumer1.

exclusive queue для меня звучит страннотогда как exclusive consumer звучит как правильное решение для «только один потребитель должен обрабатывать из очереди за один раз».

1 Ответ

0 голосов
/ 22 октября 2018

Я думаю, что разница между ними заключается в том, что для очереди exclusive она может использоваться только consumers, которые находятся на том же соединении, которое используется для объявления очереди.Когда это соединение закрыто или отключено, очередь exclusive автоматически закрывается на rabbitmq.Вариант использования для этого - то, что вы обычно хотите, чтобы очередь уничтожалась, когда exclusive (частный) потребитель выходит или отключается.

В то время как вариант использования для exclusive потребителя на обычном queue равеннемного отличается.Частный потребитель может быть отключен или отключен, но другой потребитель может быть преемником следующего exclusive потребителя, и он, возможно, не должен быть подключен к тому же rabbitmq соединению, которое использовалось для объявления queue.

По сути, оба варианта использования предусматривают exclusive доступ к очереди, но последний менее строг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...