Что произойдёт в Kafka, если изменить количество партиций «на лету» в топике, где сообщения распределялись по хэшу ключа?

При увеличении числа партиций формула hash(key) % N может направить новые сообщения того же ключа в другую партицию. Старые записи остаются на прежнем месте, поэтому сквозной порядок по ключу нарушается.

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

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

При увеличении числа партиций формула hash(key) % N может направить новые сообщения того же ключа в другую партицию. Старые записи остаются на прежнем месте, поэтому сквозной порядок по ключу нарушается.

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

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

Условие

Что произойдёт в Kafka, если изменить количество партиций «на лету» в топике, где сообщения распределялись по хэшу ключа?

Ответ

При увеличении числа партиций формула hash(key) % N может направить новые сообщения того же ключа в другую партицию. Старые записи остаются на прежнем месте, поэтому сквозной порядок по ключу нарушается.

Например, остаток от деления одного хеша на 4 и на 6 может различаться: это уже два независимых потока обработки. Потребитель новой партиции способен обработать более позднее событие раньше старого. Перед изменением продумайте остановку и осушение потока, новый топик или стабильное прикладное распределение. Если порядок критичен, добавьте версии сущности и правила обработки устаревших событий. Увеличение партиций не исправляет автоматически уже заложенные предположения потребителей.

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

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

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

Подробнее