Как использовать сообщения из очереди недоставленных сообщений по умолчанию в Spring Cloud Stream? - PullRequest
1 голос
/ 20 сентября 2019

Я настроил DLQ по умолчанию следующим образом:

spring:
  cloud:
    stream:
      rabbit:
        default:
          consumer:
            auto-bind-dlq: true
            republish-to-dlq: true
            dead-letter-queue-name: my-dlq

Я хочу использовать сообщения в этом DLQ по умолчанию и обрабатывать его в бизнес-домене.

Как прослушать эти сообщения, используя Spring Cloud Stream ?

Спасибо

1 Ответ

1 голос
/ 20 сентября 2019

Ничего встроенного нет, но документация показывает некоторые методы ...

Поскольку вы не можете предвидеть, как пользователи захотят избавиться от сообщений с мертвыми буквами,Framework не предоставляет никакого стандартного механизма для их обработки.Если причина недоставленной надписи временная, вы можете направить сообщения обратно в исходную очередь.Однако, если проблема является постоянной проблемой, это может вызвать бесконечный цикл.Следующее приложение Spring Boot показывает пример того, как направить эти сообщения обратно в исходную очередь, но переместит их в третью очередь «парковки» после трех попыток.Во втором примере используется задержанный обмен сообщениями RabbitMQ для введения задержки в сообщение в очереди.В этом примере задержка увеличивается для каждой попытки.Эти примеры используют @RabbitListener для получения сообщений от DLQ.Вы также можете использовать RabbitTemplate.receive () в пакетном процессе.

...

...