Кролик MQ резервного копирования потребителя - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть следующий вариант использования, который я пытаюсь настроить в MQ кролика:

  1. Обычно процесс A должен обрабатывать все сообщения, отправленные в очередь A.
  2. Однако, если процессA отключается (больше не потребляет из очереди A). Затем процесс B должен обрабатывать сообщения до тех пор, пока процесс A. не возобновит работу.https://www.rabbitmq.com/consumer-priority.html. Однако это будет отправлять сообщения процессу B, когда процесс A только что заблокирован, работая с другими сообщениями.Я только хочу, чтобы они отправлялись в процесс B. Когда процесс A. не работаетhttps://www.rabbitmq.com/dlx.html. Если процесс A не читает из очереди A, сообщения в конечном итоге истекают, а затем перемещаются в обмен, который перенаправляет их в очередь, которую читает процесс B.Однако эти параметры требуют ожидания тайм-аута сообщения, что не является идеальным.Также сообщение может прерваться, даже если процесс А все еще работает, что не идеально.

    Есть идеи, как настроить кролик MQ для варианта использования, описанного выше?Спасибо

1 Ответ

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

Согласно вашим ответам на мои вопросы, я бы, вероятно, использовал приоритет для потребителя, чтобы процесс А обрабатывал максимум сообщений вместе с большим количеством предварительных выборок (если это возможно, и вы должны убедиться, что ваш процесс может обработать такой высокий уровень).номер).

Затем процесс B будет обрабатывать сообщения, которые процесс A не может обработать из-за высокой нагрузки, или все сообщения, когда процесс A недоступен.Вероятно, допустимо, что в случае высокой нагрузки некоторые сообщения обрабатываются с более высокой задержкой.Не забудьте установить низкий счетчик предварительной выборки для процесса B.

Надеюсь, это поможет.

...