Я тестирую добавление разделов Kafka в работающую систему, но мне не ясно, как Kafka управляет существующими данными, если вы добавляете разделы в существующую тему.
Например:
test с 1 разделом и 1 репликой.Что в этом случае происходит с данными темы? Произведена ли перебалансировка между обоими разделами или новый раздел будет использоваться только для новых произведенных данных?

Добавление разделов не меняет разделение существующих данных, в этом отношении оно основано на философии "только добавление". Например, если данные разделены хешем (ключом)% number_of_partitions, тогда это разделение потенциально будет перетасовано путем добавления разделов, kafka не будет пытаться сбалансировать / перераспределить его.
Добавление раздела не вызывает перераспределения данных, которые уже находятся в разделах текущей темы. В новый раздел будут отправлены только новые созданные данные, и вы должны учитывать следующую проблему при добавлении нового раздела ... Если вы используете разделитель по умолчанию и отправляете сообщения с помощью ключа, он работает следующим образом: hash (key)% number_partitions. Kafka гарантирует, что сообщения с одним и тем же ключом попадают в одни и те же разделы, но это не так, когда вы добавляете раздел, потому что в предыдущей формуле number_partitions изменяется, поэтому сообщение с ключом = k1, которое перед добавлением раздела перешло, например, в раздел 0, теперь можно было перейти в раздел 1 (из-за нового раздела).
Итак, существует ли идиоматический способ (1) добавления разделов и (2) обеспечения сохранения порядка? Сообщение m1 с ключом k1 отправляется в раздел p2. После добавления раздела сообщение m2 с ключом k1 отображается на раздел p3. Таким образом, потребитель может читать m2 первый из p3 и только тогда m1 из p2.