Зависит от
Обычный потребитель Kafka:
Группа потребителей Kafka состоит из пула потребителей / экземпляров / процессов с одним и тем же group.id, который может работать на одном компьютереили распределенные машины. Kafka Consumer использует перебалансировку для назначения разделов каждому потребителю без наложения, что означает, что одному разделу может быть назначен не более одного потребительского процесса Consumer Group.
Для потребителя также можно вручную назначать определенные разделы (аналогично старым)простой «потребитель» с помощью assign (Collection). В этом случае динамическое назначение разделов и координация групп потребителей будут отключены
Таким образом, в случае, если раздел может быть назначен любому потоку при перебалансировке.
Поток Кафки:
Кафка использует задачу потока в качестве логической единицы для назначения раздела и распараллеливания процесса. Kafka Stream создает номер потоковой задачи на основе потоковых разделов и назначает список разделов для каждой задачи. После того, как задача назначена разделам, она будет придерживаться и управлять параллелизмом в своей собственной топологии. В результате задачи потока результатов могут обрабатываться независимо и параллельно без ручного вмешательства.
Реализация по умолчанию интерфейса PartitionGrouper, который группирует разделы по идентификатору раздела. Операции соединения требуют, чтобы разделы объединяющихся сущностей были разделены на части, т. Е. Были разделены одним и тем же ключом и имели одинаковое количество разделов. Совместное распределение обеспечивается наличием одинакового количества разделов в объединенных темах и использованием сериализации и разделителя по умолчанию для производителя. здесь
Так что в вашем случае сценарий-1 невозможен, еслиВозможен сценарий 2.