Apache Kafkaのコンセプトを学ぶ
Apache Kafka は、多数のバッチ・ワークロード、リアルタイム・データ統合、およびデータ・ストリーミングのユース・ケースのために多くの企業によって使用される分散ストリーミング・プラットフォームです。

以下に、Apache Kafka の概念をいくつか定義してリストします。
ブローカー
Apache Kafka は、分散メッセージング・システムです。 Kafka クラスターはブローカーの集合です。 クラスターには、最低 3 つのブローカーがあります。

メッセージ
メッセージは、Kafka におけるデータの単位です。 各メッセージが 1 つのレコードとして表され、レコードはキーと値の 2 つの部分からなります。 キーは一般的にメッセージに関するデータ用に使用され、値はメッセージ本体です。 Kafka ではレコードいう用語とメッセージという用語が区別せずに使用されています。
トピックとパーティション
各トピックは、名前付きのメッセージ・ストリームです。 1 件のトピックは 1 つ以上のパーティションからなります。 パーティション上のメッセージは、オフセットと呼ばれる番号順に配列されます。 複数のパーティションをブローカーに分散させることで、トピックのスケーラビリティが向上する。
1 つのトピックに複数のパーティションがある場合、クラスター全体でそれらのパーティションを配分することによって、データを並行してフィードし、スループットを向上させることができます。 パーティションの数は、コンシューマー間の作業負荷のバランシングにも影響します。
詳しくは、パーティションのリーダーを参照してください。

複製する
可用性を向上させるため、各トピックを複数のブローカーに複製することができます。 パーティションごとに、ブローカーの 1 つがリーダーであり、それ以外のブローカーはフォロワーです。
レプリカの生成は、フォロワーがリーダーからメッセージを繰り返し取り出すことで機能します。

同期レプリカ
パーティション・リーダーに遅れずについていっているフォロワーのレプリカは、同期しています。 どのフォロワーでも、同期レプリカを保有していれば、メッセージ損失なしにリーダーになることができます。
パーティション・リーダーに障害が発生した場合、別のリーダーがフォロワーの中から選択されます。 通常、すべてのレプリカが同期されます。 障害の発生後にレプリカがキャッチアップしている間、レプリカが一時的に非同期になることは許容されます。

プロデューサー
プロデューサーは、1 つ以上のトピックにメッセージをパブリッシュするクライアント・アプリケーションです。 プロデューサーは、1 つ以上のトピックにパブリッシュすることができます。 また、オプションで、データを格納するパーティションを選択できます。
また、プロデューサがパブリッシュするメッセージに対して受け取る確認応答のレベルを選択することで、速度や信頼性を優先するようにプロデューサを構成することもできます。
詳しくは、メッセージのプロデュースを参照してください。

コンシューマー
コンシューマーは、1 つ以上のトピックからメッセージを読み取り、それらを処理するクライアント・アプリケーションです。 コンシューマーの現在位置とパーティションにある最新メッセージとの差をオフセット・ラグと呼びます。
時間の経過とともにラグが増加している場合、それは、コンシューマーが遅れずについていくことができていないことを意味します。 短期的には、これは問題ではありませんが、保存期間を超過すると、最終的にコンシューマーがメッセージを見逃す可能性があります。
詳しくは、メッセージのコンシュームを参照してください。

コンシューマー・グループ
コンシューマー・グループには、トピックのメッセージを処理するために一緒に作業する 1 つ以上のコンシューマーが含まれます。 単一パーティションからのメッセージは、各グループ内の 1 つのコンシューマーによって処理されます。
任意の時点において、各パーティションは、グループ内の 1 つのコンシューマーにのみ割り当てられます。 この割り当てにより、各パーティション上のメッセージが順番に処理されることが保証される。
グループ内にコンシューマーより多くのパーティションが存在する場合、一部のコンシューマーには複数のパーティションがあります。 パーティションより多くのコンシューマーが存在する場合、一部のコンシューマーにはパーティションがありません。

詳細情報
詳しくは、 Apache Kafka の資料を参照してください。