Apache-kafka-fundamentals

提供:Dev Guides
移動先:案内検索

Apache Kafka-基礎

Kafkaに深く入り込む前に、トピック、ブローカー、プロデューサー、コンシューマーなどの主要な用語に注意する必要があります。 次の図は主な用語を示し、表は図のコンポーネントを詳細に説明しています。

基本

上の図では、トピックは3つのパーティションに構成されています。 パーティション1には2つのオフセット係数0と1があります。 パーティション2には、4つのオフセット係数0、1、2、および3があります。 パーティション3には1つのオフセット係数0があります。 レプリカのIDは、レプリカをホストするサーバーのIDと同じです。

トピックのレプリケーション係数が3に設定されている場合、Kafkaは各パーティションの3つの同一レプリカを作成し、クラスターに配置して、すべての操作に使用できるようにします。 クラスター内の負荷を分散するために、各ブローカーはそれらのパーティションの1つ以上を格納します。 複数のプロデューサーとコンシューマーが同時にメッセージを公開および取得できます。

S.No Components and Description
1

Topics

特定のカテゴリに属する​​メッセージのストリームは、トピックと呼ばれます。 データはトピックに保存されます。

トピックはパーティションに分割されます。 各トピックについて、Kafkaは最小1つのパーティションを保持します。 このような各パーティションには、不変の順序でメッセージが含まれています。 パーティションは、同じサイズのセグメントファイルのセットとして実装されます。

2

Partition

トピックには多くのパーティションがあるため、任意の量のデータを処理できます。

3

Partition offset

分割された各メッセージには、「 offset」と呼ばれる一意のシーケンスIDがあります。

4

Replicas of partition

レプリカは、パーティションの「バックアップ」に他なりません。 レプリカは決してデータを読み書きしません。 データの損失を防ぐために使用されます。

5

Brokers

  • ブローカーは、公開されたデータを管理するシンプルなシステムです。 各ブローカーには、トピックごとに0個以上のパーティションがあります。 トピックにN個のパーティションがあり、N個のブローカーがある場合、各ブローカーには1つのパーティションがあります。
  • トピックにN個のパーティションがあり、N個を超えるブローカー(n + m)がある場合、最初のN個のブローカーには1つのパーティションがあり、次のMブローカーにはその特定のトピックのパーティションはありません。 *トピックにN個のパーティションがあり、N個未満のブローカー(n-m)がある場合、各ブローカーは1つ以上のパーティションを共有します。 このシナリオは、ブローカー間で負荷が不均等に分配されるため推奨されません。
6
  • Kafka Cluster*

Kafkaが複数のブローカーを持っていることをKafkaクラスターと呼びます。 Kafkaクラスターは、ダウンタイムなしで拡張できます。 これらのクラスターは、メッセージデータの永続性とレプリケーションを管理するために使用されます。

7

Producers

プロデューサーは、1つ以上のKafkaトピックへのメッセージの発行者です。 プロデューサーは、Kafkaブローカーにデータを送信します。 プロデューサーがブローカーにメッセージを発行するたびに、ブローカーは最後のセグメントファイルにメッセージを単に追加します。 実際には、メッセージはパーティションに追加されます。 プロデューサーは、選択したパーティションにメッセージを送信することもできます。

8

Consumers

消費者はブローカーからデータを読み取ります。 消費者は、1つ以上のトピックにサブスクライブし、ブローカーからデータをプルすることにより、公開されたメッセージを消費します。

9

Leader

「リーダー」は、指定されたパーティションのすべての読み取りと書き込みを担当するノードです。 すべてのパーティションには、リーダーとして機能するサーバーが1つあります。

10

Follower

リーダーの指示に従うノードは、フォロワーと呼ばれます。 リーダーが失敗すると、フォロワーの1人が自動的に新しいリーダーになります。 フォロワーは、通常のコンシューマーとして機能し、メッセージをプルし、独自のデータストアを更新します。