Kafka кажется «надёжной по умолчанию», но у consumer’ов есть слабое место: повторная обработка сообщений.
Что происходит:
- сервис читает сообщение;
- не успевает обработать его с первого раза;
- Kafka отправляет его повторно.
Если это не заложить в архитектуру заранее, появляются дубли, лишняя нагрузка и сложно поймать, где именно сломался поток данных.
Что важно проверить:
1. есть ли у consumer’а идемпотентность — то есть безопасная повторная обработка;
2. что происходит с сообщением при ошибке: оно уходит в retry или зависает;
3. как настроены offset’ы — это метки, которые показывают, какие сообщения уже прочитаны;
4. есть ли отдельный сценарий для «битых» сообщений, которые нельзя обработать сразу.
Вывод простой: retry — это не мелкая техническая деталь, а часть стабильности сервиса. Если её не продумать, одна ошибка может превратиться в лавину повторных запросов 🔁
PPC Sherpa
@PPCSherpaPro
Kafka кажется «надёжной по умолчанию», но у consumer’ов есть слабое место: повторная обработка сообщений.
Этот пост опубликован в Telegram-канале PPC Sherpa. Подписаться можно по ссылке: @PPCSherpaPro.