При наличии одной очереди с несколькими потребителями невозможно заблокировать одного из потребителей, все они получают сообщения в циклическом порядке.
RabbitMQ работает над этой функцией : Ввести опцию, чтобы активным был только один одновременный потребитель
Вы могли видеть этот плагин, https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange для распределения нагрузки по разным очередям.
Я попытался установить значение предварительной выборки равным 1
prefetch=1
означает, что потребители принимают одно сообщение за раз.
делаем ли мынеобходимо реализовать нашу собственную блокировку
Да, если вы хотите один единственный потребитель для очереди, избегая других потребителей.
РЕДАКТИРОВАТЬ
Есть также Exclusive Queues
https://www.rabbitmq.com/queues.html#exclusive-queues, но note :
Исключительные очереди удаляются, когда их объявленное соединение закрыто или прервано (например, из-зак основной потере соединения TCP).Поэтому они подходят только для конкретного переходного состояния клиента.