Ответ
Основное правило: количество активных Consumer в группе не может превышать количество Partition в топике, на который они подписаны. Лишние Consumer будут бездействовать.
Почему это важно:
- Каждая Partition может быть назначена только одному Consumer в рамках группы для гарантии порядка обработки сообщений.
- Это ограничение определяет максимальный параллелизм чтения из топика.
Пример:
Если топик orders имеет 3 партиции, а в группе processor-group 5 консьюмеров, то только 3 консьюмера получат назначение на партиции и будут обрабатывать данные. Остальные 2 останутся в idle-состоянии.
Рекомендации:
- Для максимального параллелизма устанавливайте количество Consumer равным количеству Partition.
- Чтобы увеличить пропускную способность обработки, сначала увеличьте количество партиций в топике (это требует пересоздания топика или использования специальных инструментов).