Skip to content
9 / 15

Как настраивать повторы, экспоненциальную задержку и очередь недоставленных сообщений?

Повторять имеет смысл только временные ошибки: сеть, таймаут, 5xx, «сервис перегружен». Ошибки логики — неверная схема, отсутствующая сущность, 4xx — повторами не лечатся и должны уходить сразу в сторону. Задержка между попытками растёт экспоненциально и обязательно с разбросом (jitter), иначе тысяча потребителей синхронно ударит по восстановившемуся сервису и уронит его снова. Число попыток ограничено, после исчерпания сообщение уходит в очередь недоставленных (DLQ) вместе с причиной, числом попыток и исходными заголовками. DLQ — не архив, а рабочая очередь: на её непустоту ставят алерт, содержимое разбирают, а после исправления умеют переотправлять. И главное: повторять можно только то, что идемпотентно.

Как настраивать повторы, экспоненциальную задержку и очередь недоставленных сообщений? | JScriptiser