Статьи

Spring Boot + RabbitMQ Tutorial — пример повторных попыток и обработки ошибок

В предыдущем уроке мы реализовали пример Spring Boot + RabbitMQ, чтобы понять различные типы обмена . В этом руководстве мы будем реализовывать пример Spring Boot + RabbitMQ, чтобы повторить сообщения об исключении. Если исключение все еще существует после максимальных попыток, мы помещаем сообщение в очередь недоставленных сообщений, где оно может быть проанализировано и исправлено позже.

Что такое очередь мертвых писем?

В словаре английского языка письмо-переписка — это недоставленная почта, которая не может быть доставлена ​​адресату. Очередь недоставленных сообщений (DLQ), иногда известная как очередь недоставленных сообщений, является очередью хранения сообщений, которые не могут быть доставлены по назначению из-за чего-либо.
Согласно Википедии  — В очереди сообщений очередь недоставленных сообщений является реализацией службы для хранения сообщений, которые соответствуют одному или нескольким из следующих критериев сбоя:

  • Сообщение, которое отправляется в несуществующую очередь
  • Превышен предел длины очереди
  • Превышен предел длины сообщения
  • Сообщение отклонено другим обменом очередей
  • Сообщение достигает порогового значения счетчика чтения, поскольку оно не используется. Иногда это называют «очередью возврата»

Позже мы можем проанализировать сообщения в DLQ, чтобы узнать причину сбоя сообщений.

Этот учебник объясняется в видео YouTube ниже.

Мы будем реализовывать два модуля:

  1. Модуль Spring Boot Producer  — он создаст сообщение и поместит его в очередь RabbitMQ. Он также будет отвечать за создание необходимых очередей, включая очередь недоставленных сообщений.
  2. Модуль Spring Boot Consumer  — он будет использовать сообщение из очереди RabbitMQ. Мы будем выдавать исключение и затем повторять попытку сообщения. После максимального количества попыток он будет помещен в очередь недоставленных сообщений.

Модуль Spring Boot + RabbitMQ Producer

Проект Maven будет следующим:

Файл pom.xml будет иметь следующие зависимости:


XML