Ответ
Теоретического ограничения со стороны Kafka нет. Количество партиций для топика может быть сколь угодно большим (например, десятки тысяч).
Практическое ограничение определяется:
- Количеством брокеров: Партиции распределяются по брокерам. Для равномерной нагрузки и отказоустойчивости рекомендуется иметь число партиций, кратное числу брокеров в кластере.
- Производительностью файловой системы: Каждая партиция — это директория с файлами сегментов. Слишком большое число партиций создает нагрузку на метаданные и может снизить производительность.
- Лимитами ресурсов: Увеличивает нагрузку на память брокера (особенно для контроллера) и клиентов.
Рекомендация для 3 брокеров:
- Для хорошего распределения и масштабирования часто выбирают 3, 6, 9, 12... партиций (кратно 3).
- Стартовая точка — 3 партиции (по одной на брокер). Увеличивать при необходимости, если один потребитель (consumer) не справляется с нагрузкой, так как максимум один потребитель в группе может читать с одной партиции.