kafka кастомный разделитель и переразбиение

Мы можем указать собственный разделитель для тем kafka. Таким образом, производитель kafka может детерминированно отправить сообщение в конкретный раздел на основе определенного настраиваемого алгоритма.

Теперь вопрос в том, когда я увеличиваю количество разделов, как kafka будет перераспределять существующие сообщения между новыми разделами? Или Кафка не будет распространять сообщения на новые разделы? Можно ли запустить это перераспределение? Если да, то как кафка узнает о настраиваемом разделителе, если этот фрагмент кода находится в производственной части?


person Durgesh O Mishra    schedule 15.09.2020    source источник


Ответы (1)


когда я увеличиваю количество разделов, как kafka будет перераспределять существующие сообщения между новыми разделами?

Он не будет распространять существующие сообщения.

Можно ли запустить это перераспределение?

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

Если да, то как кафка узнает о настраиваемом разделителе, если этот фрагмент кода находится в производственной части?

Собственно, Kafka даже не знает, как сбалансировать существующие сообщения между старыми и новыми разделами. Это могло быть сделано только на случайной основе, что было бы довольно опасно для упорядочивания сообщений (см. Ответ на второй вопрос).


Мы можем указать собственный разделитель для тем kafka.

Просто хотел подчеркнуть, что пользовательский разделитель всегда используется на уровне производителя, и вы не можете указать разделитель для темы. Представьте себе действительный сценарий, в котором несколько продюсеров пишут на одну и ту же тему. У каждого производителя может быть индивидуальная логика разделения.

person mike    schedule 15.09.2020