Sobes.tech
Назад к вопросам
Senior
13

В топике с 6 партициями добавили ещё 6. Ключ — userID. Пойдёт ли сообщение с тем же ключом в ту же партицию?

Компании, где спрашивали
СБК ПАРУС

Ответ от нейросети

sobes.tech AI

В Kafka партиция определяется с помощью хеш-функции от ключа сообщения по модулю количества партиций. Если в топике было 6 партиций, и добавили ещё 6 (всего 12), то при изменении количества партиций хеширование изменится.

Это значит, что сообщение с тем же ключом userID, скорее всего, попадёт в другую партицию, так как количество партиций влияет на вычисление индекса партиции:

partition = hash(key) % num_partitions

Из-за этого при увеличении числа партиций сообщения с одним и тем же ключом могут распределяться по другим партициям, что может повлиять на порядок обработки сообщений с этим ключом.

Для сохранения консистентного распределения ключей обычно создают топики с фиксированным числом партиций или используют специальные стратегии партиционирования.