Каково максимальное количество партиций для топика в Kafka-кластере из 3 брокеров?

«Каково максимальное количество партиций для топика в Kafka-кластере из 3 брокеров?» — вопрос из категории Брокеры сообщений, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Теоретического ограничения со стороны Kafka нет. Количество партиций для топика может быть сколь угодно большим (например, десятки тысяч).

Практическое ограничение определяется:

  1. Количеством брокеров: Партиции распределяются по брокерам. Для равномерной нагрузки и отказоустойчивости рекомендуется иметь число партиций, кратное числу брокеров в кластере.
  2. Производительностью файловой системы: Каждая партиция — это директория с файлами сегментов. Слишком большое число партиций создает нагрузку на метаданные и может снизить производительность.
  3. Лимитами ресурсов: Увеличивает нагрузку на память брокера (особенно для контроллера) и клиентов.

Рекомендация для 3 брокеров:

  • Для хорошего распределения и масштабирования часто выбирают 3, 6, 9, 12... партиций (кратно 3).
  • Стартовая точка — 3 партиции (по одной на брокер). Увеличивать при необходимости, если один потребитель (consumer) не справляется с нагрузкой, так как максимум один потребитель в группе может читать с одной партиции.