RabbitMQ и FIFO, когда несколько потребителей - PullRequest
0 голосов
/ 26 декабря 2018

У нас есть несколько потребителей для обработки сообщений о создании, но мы хотим обеспечить заказ FIFO, поэтому, если мы создаем продукт A, мы должны отклонить следующие создания продукта A.

Проблема заключается в том, что мыУ нескольких потребителей есть возможность обрабатывать сообщения этого типа. Возможно, что у потребителя 1, который заканчивается после потребителя 2. Например, сообщение 1 содержит больше данных для сохранения по сравнению с сообщением 2 для того же продукта.

Запуск RabbitMQУ нескольких потребителей нарушается принцип очереди FIFO.Есть ли способ избежать этого с помощью RabbitMQ или мы должны ориентировать нашу архитектуру таким образом, чтобы элемент управления был в большей степени ориентирован на угрозы Java?

Спасибо

1 Ответ

0 голосов
/ 26 декабря 2018

Запуск RabbitMQ с несколькими потребителями нарушает принцип очереди FIFO.

Нет, это не так.Сообщения доставляются в порядке FIFO.Многократные потребители приведут к тому, что сообщения будут доставляться круговым способом между ними, но они все еще доставляются в порядке FIFO.

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


ПРИМЕЧАНИЕ: команда RabbitMQ контролирует список рассылки rabbitmq-users и только иногда отвечает на вопросы о StackOverflow.

...