Я новичок в rabbitMQ
У меня есть несколько узлов, каждый с производителем и несколькими потребителями.Я стараюсь держать длину очереди очень короткой.Однако я хочу представить механизм, при котором, если очередь достигает определенного порога, мы можем перемещать сообщения на другой узел, если этот узел находится ниже порога.Могу ли я сделать это с помощью лопаты?Может кто-нибудь направить меня в правильном направлении.
В основном я хочу использовать лопату для перемещения сообщений на другой незанятый узел, чтобы потребители на этом узле могли обрабатывать некоторые сообщения.Лопата не заменит потребителей на занятом узле.
**************** РЕДАКТИРОВАТЬ *******************
Я обнаружил, что лопата работает хорошо.Я создал C # программу, которая контролирует очереди на каждом узле.Он использует QueueDeclarePassive
(в API RabbitMQ .net).Если у узла очень мало работы, он создает временную динамическую лопату для извлечения работы из другого узла.
Единственная проблема, с которой я сталкиваюсь - это создание цикла.Потому что теперь оригинальный узел завершает свою работу и сгребает свои данные обратно.
Мне нужно предотвратить возникновение этих циклов.Я могу заставить совок добавить заголовок к сообщениям, которые он принял, но я не могу заставить другие узлы совать не принимать данные, если заголовок существует.
Есть идеи?