Kafkaパーティションとは?
かふかぱーてぃしょん
Kafkaパーティションとは、Apache Kafkaのトピックを分割する並列処理の単位で、メッセージの順序保証とスループット向上を両立する仕組みのことです。
Apache Kafkaにおけるパーティション(Partition)は、トピック(Topic)を物理的に分割した単位です。各トピックは1つ以上のパーティションで構成され、メッセージはパーティション内でオフセット(通し番号)により順序管理されます。
パーティションの主な役割は2つです。
- 並列処理によるスループット向上:パーティションを増やすことで、複数のプロデューサーやコンシューマーが同時にメッセージを書き込み・読み込みできます。
- 順序保証:同一パーティション内のメッセージは書き込み順に読み出されます。ただし、パーティションをまたぐ順序は保証されません。
メッセージをどのパーティションに割り当てるかは、プロデューサーが決定します。キー(Key)を指定するとハッシュ関数により同じキーのメッセージが同一パーティションに送られるため、ユーザーIDや注文IDで順序を保ちたいケースに有効です。キーを指定しない場合はラウンドロビン方式で均等に分散されます。
パーティション数の設計は重要で、少なすぎると並列度が上がらず、多すぎるとリーダー選出やレプリカ管理のオーバーヘッドが増大します。Kafkaクラスターのブローカー数やコンシューマーグループのメンバー数と合わせて適切に設定することが推奨されます。
使い方・例文
「ユーザーIDをキーにKafkaパーティションを振り分けることで、同一ユーザーのイベントが常に順序通りに処理されるよう設計した」という使い方が一般的です。
この用語をシェア
最終更新: