Вы не потеряете данные, однако, в зависимости от вашего приложения, добавление разделов может не поддерживаться и нарушит работу вашего приложения.
Вы можете добавлять разделы, только если ваше приложение не имеет состояния. Если ваша заявка находится в состоянии, ваше приложение, скорее всего, сломается и умрет с исключением.
Также обратите внимание, что Kafka Streams предполагает, что входные данные разделены по ключам. Таким образом, если разделение изменяется, даже если приложение не разрывается, оно, скорее всего, вычислит неверный результат, поскольку добавление раздела нарушило предположение о разбиении.
Одним из способов решения этой проблемы является сброс настроек приложения (ср.). Однако это означает, что вы теряете текущее состояние приложения. Обратите внимание, что сброс не решит проблему неправильного разделения, и ваше приложение может вычислить неверные результаты. Чтобы предотвратить проблему секционирования, вы можете вставить фиктивную операцию map()
, которая пересылает данные только после того, как вы прочитали данные из темы, потому что это приведет к перераспределению данных, если потребуется, и, таким образом, исправит разбиение на основе ключей.