本文へスキップ

Kafkaパーティションとは?

かふかぱーてぃしょん

Kafkaパーティションとは、Apache Kafkaのトピックを分割する並列処理の単位で、メッセージの順序保証とスループット向上を両立する仕組みのことです。

Apache Kafkaにおけるパーティション(Partition)は、トピック(Topic)を物理的に分割した単位です。各トピックは1つ以上のパーティションで構成され、メッセージはパーティション内でオフセット(通し番号)により順序管理されます。

パーティションの主な役割は2つです。

  • 並列処理によるスループット向上:パーティションを増やすことで、複数プロデューサーやコンシューマーが同時にメッセージを書き込み・読み込みできます。
  • 順序保証:同一パーティション内のメッセージは書き込み順に読み出されます。ただし、パーティションをまたぐ順序は保証されません。

メッセージをどのパーティションに割り当てるかは、プロデューサーが決定します。キー(Key)を指定するとハッシュ関数により同じキーのメッセージが同一パーティションに送られるため、ユーザーIDや注文IDで順序を保ちたいケースに有効です。キーを指定しない場合はラウンドロビン方式で均等に分散されます。

パーティション数の設計は重要で、少なすぎると並列度が上がらず、多すぎるとリーダー選出やレプリカ管理のオーバーヘッドが増大します。Kafkaクラスターのブローカー数やコンシューマーグループのメンバー数と合わせて適切に設定することが推奨されます。

使い方・例文

「ユーザーIDをキーにKafkaパーティションを振り分けることで、同一ユーザーのイベントが常に順序通りに処理されるよう設計した」という使い方が一般的です。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語