Spring AMQP - Как мне повторить / повторно поместить сообщение из очереди DLX в исходную очередь? - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь реализовать следующий сценарий в моем приложении

Exachange e1 -> Очередь q1

DLX exchange e2 -> Очередь q2

Также я упомянул DLE иDLK в queue-q1, затем сообщение перемещается в queue-q2 при отклонении / сбое / тайм-ауте.

Но как мне переслать / повторить сообщение из queue-q2 в исходную queue-q1?

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете сделать это вручную в своем приложении после некоторого анализа и фильтрации логики.Или вы можете сделать TTL для этого queue-q2, чтобы истек срок действия неиспользованных сообщений.И вам также нужно указать в этой очереди x-dead-letter-exchange в качестве имени для Exachange e1 для желаемой переработки.

См. Дополнительную информацию в этой статье :

  1. Создайте обмен недоставленными буквами, который является обычным обменом со специальным именем
  2. Создайте очередь retry_message и опубликуйте все сообщения на маршруте обмена недоставленными сообщениями здесь
  3. При настройкев очереди retry_message убедитесь, что по умолчанию установлены следующие значения параметров очереди
  4. x-message-ttl: 30000 - это установит ttl для любого сообщения, опубликованного в очереди.По истечении времени ttl сообщение будет переиздано на биржу, указанную в параметре x-dead-letter-exchange.
  5. x-dead-letter-exchange: original_exchange_name - это место, где сообщение будет переиздано после сообщения ttl.истекает.Обычно мы хотим, чтобы это было имя биржи, на которой сообщение было первоначально опубликовано.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...