Ответ
Произойдет ребалансировка потребителей (rebalance). Партиции топика будут перераспределены между всеми активными потребителями в группе.
Логика перераспределения:
- Партиций > Потребителей: Новый потребитель получит часть партиций от других.
- Партиций = Потребителям: Партиции распределятся поровну, некоторые потребители могут остаться без работы, если партиций меньше.
- Партиций < Потребителей: Часть потребителей не получит партиций и будет бездействовать.
Пример: Было 3 партиции (P0, P1, P2) и 2 потребителя (C1, C2).
До ребалансировки:
C1 -> [P0, P1]
C2 -> [P2]
После добавления C3 и ребалансировки (CooperativeStickyAssignor):
C1 -> [P0]
C2 -> [P1]
C3 -> [P2]
Важные последствия:
- Пауза в обработке: На время ребалансировки потребители приостанавливают чтение сообщений.
- Стратегия назначения: Для минимизации влияния используйте стратегию
CooperativeStickyAssignor(начиная с Kafka 2.4+), которая избегает полной ребалансировки. - Повторная обработка: Потребитель, потерявший партицию, должен завершить обработку текущих сообщений до перехода партиции к новому владельцу, что может привести к дублированию обработки.