Вопрос проверяет практический опыт работы с Kafka и понимание типичных проблем распределенных систем.
Kafka — сложная распределенная система и требует аккуратной настройки. Частые проблемы связаны с потерей сообщений, дубликатами и порядком обработки. Также возникают сложности с масштабированием consumer-ов. Ошибки конфигурации могут привести к деградации производительности. Без мониторинга Kafka становится трудно поддерживать.
Несмотря на мощь Kafka, при ее использовании часто возникают проблемы, особенно при росте нагрузки и усложнении архитектуры.
Большинство сложностей связано с распределенной природой системы и неверными ожиданиями от нее.
Причины:
неправильная работа с offset
auto-commit в consumer-е
ошибки при повторной обработке
Kafka не гарантирует «exactly once» по умолчанию без дополнительной логики.
Важно помнить:
порядок гарантирован только внутри партиции
при нескольких партициях порядок теряется
Ошибка проектирования ключей сообщений часто приводит к логическим багам.
При увеличении числа consumer-ов:
количество партиций становится ограничением
часть consumer-ов может простаивать
возможны частые rebalance
Kafka:
распределена
асинхронна
плохо воспроизводит ошибки локально
Это усложняет поиск причин сбоев.
Ошибки в retention приводят к:
преждевременному удалению данных
переполнению дисков
потере возможности перечитать события
Kafka требует:
мониторинга
контроля дисков
настройки репликации
понимания работы брокеров
Kafka — мощный, но сложный инструмент. Без грамотного проектирования, мониторинга и понимания ее ограничений она может стать источником серьезных проблем в системе.