Запуск нескольких потребителей в одной очереди - PullRequest
0 голосов
/ 23 января 2019

Пожалуйста, ответьте на вопроспрочитанное сообщение будет проиндексировано как непрочитанное. Поэтому моя проблема заключается в том, как запустить несколько потребителей для обеспечения целостности данных. Также дайте мне знать, если потребуется дополнительное разъяснение.

1 Ответ

0 голосов
/ 24 января 2019

Очередь на Direct Exchange с несколькими потребителями лучше всего подходит для этого сценария.

Используйте метод basicQos с настройкой prefetchCount = 1.

Это говорит RabbitMQ не передавать более одного сообщения работнику за раз. Или, другими словами, не отправляйте новое сообщение работнику, пока оно не обработает и не подтвердит предыдущее. Вместо этого он отправит его следующему работнику, который еще не занят.

Java-код:

channel.basicQos(1);

Для более подробной информации: https://www.rabbitmq.com/tutorials/tutorial-two-java.html

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