advanced

Kafka partitions

Используйте partitions как unit parallelism и per-key ordering, carefully выбирая keys, потому что repartitioning affects scale and ordering.

Partitions — единица parallelism и per-key ordering в Kafka. Messages с одним key попадают в одну partition и читаются по порядку там. Больше partitions — выше throughput ceiling, но больше file handles, rebalance cost и minimum consumer parallelism.

Компромисс: repartitioning сложен — выбирайте count по expected throughput и consumer count заранее.

На интервью: key для order events, чтобы все события одного order ordered; эффект null keys.

Типовые ошибки: hot partitions от skewed keys; слишком много partitions для малого cluster; смена partition count ломает assumptions порядка.

Чеклист:

  • Key по natural business identifier для ordering.
  • Size partitions от peak throughput и consumer targets.
  • Per-partition lag для hot spots.
  • Repartitioning как migration, не routine ops.