Как устранить consumer lag, если один consumer уже вертикально масштабирован до предела, а данные должны попадать в read-модель почти в реальном времени?

Разделите обработку по независимым ключам и масштабируйте consumers горизонтально, предварительно выяснив узкое место. Для Kafka полезный параллелизм ограничен числом партиций и требованиями к порядку.

Короткий ответ

Что ответить на собеседовании

Разделите обработку по независимым ключам и масштабируйте consumers горизонтально, предварительно выяснив узкое место. Для Kafka полезный параллелизм ограничен числом партиций и требованиями к порядку.

Подробный разбор

Ответ с пояснениями

Разделите обработку по независимым ключам и масштабируйте consumers горизонтально, предварительно выяснив узкое место. Для Kafka полезный параллелизм ограничен числом партиций и требованиями к порядку.

Проверьте, сколько времени уходит на получение, преобразование и запись в read-модель. Пакетная запись, устранение лишних запросов и индексы sink иногда дают больше, чем новый consumer. Сохраняйте порядок в рамках нужного агрегата, идемпотентность и контроль checkpoint. Если узкое место — одна БД или горячий ключ, добавление workers усилит конкуренцию. Обеспечьте производительность выше входного потока с запасом для ликвидации backlog; возможны backpressure и временное упрощение некритичных вычислений.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее