6 / 15
Как устроены очереди, повторные попытки и очередь недоставленных сообщений?
Очередь развязывает отправителя и обработчика: приём мгновенный, обработка идёт своим темпом, всплеск сглаживается. Сообщение при получении становится невидимым на таймаут видимости — если обработчик не подтвердил успех за это время, сообщение вернётся в очередь. Отсюда правило: таймаут видимости должен быть заметно больше времени обработки, иначе начнётся параллельная обработка одного сообщения. Повторы делают с экспоненциальной задержкой и джиттером, а после исчерпания попыток сообщение уходит в очередь недоставленных (DLQ) — она обязательна, иначе «ядовитое» сообщение будет крутиться вечно, а данные молча теряться. DLQ нужно мониторить и уметь переигрывать.