第2章 Kafka の概要
Apache Kafka は、耐障害性のリアルタイムデータフィードを実現する、オープンソースの分散型 publish/subscribe メッセージングシステムです。
その他のリソース
- Apache Kafka の詳細は、Apache Kafka の Web サイト を参照してください。
2.1. Kafka の概念
Kafka の主な概念を知ることは、AMQ Streams の仕組みを理解するうえで重要です。
Kafka クラスターは複数のブローカーで設定され、トピックは Kafka クラスターでのデータ受信および保存に使用されます。トピックはパーティションに分割され、そこにデータが書き込まれます。パーティションは、耐障害性を確保するため、複数のトピックでレプリケーションされます。
Kafka ブローカーおよびトピック
- ブローカー
- サーバーまたはノードと呼ばれるブローカーは、ストレージとメッセージの受け渡しをオーケストレーションします。
- トピック
- トピックは、データの保存先を提供します。各トピックは、複数のパーティションに分割されます。
- クラスター
- Broker インスタンスのグループ
- パーティション
- トピックパーティションの数は、トピックの PartitionCount (パーティション数) で定義されます。
- パーティションリーダー
- パーティションリーダーは、トピックの全プロデューサー要求を処理します。
- パーティションフォロワー
パーティションフォロワーは、パーティションリーダーのパーティションデータをレプリケーションし、オプションでコンシューマー要求を処理します。
トピックでは、ReplicationFactor (レプリケーション係数) を使用して、クラスター内のパーティションごとのレプリカ数を設定します。トピックは、最低でもパーティション 1 つで設定されます。
in-sync レプリカ (ISR) はリーダーと同数のメッセージを保持しています。設定では、メッセージを生成できるように 同期する 必要のあるレプリカ数を定義し、メッセージがレプリカパーティションに正常にコピーされない限りに、コミットされないようにします。こうすることで、リーダーに障害が発生しても、メッセージは失われません。
Kafka ブローカーおよびトピック の図では、レプリケーションされたトピック内に、各番号付きのパーティションにリーダー 1 つとフォロワーが 2 つあることが分かります。