第2章 Kafka の Streams for Apache Kafka デプロイメント
Streams for Apache Kafka では、Apache Kafka コンポーネントを OpenShift クラスターにデプロイできます。クラスターは、通常は高可用性のためにクラスター群として実行されます。
Streams for Apache Kafka を使用した標準的な Kafka デプロイメントには、次のコンポーネントが含まれる場合があります。
- コアコンポーネントとしてのブローカーノードの Kafka クラスター
- 外部データ接続用の Kafka Connect クラスター
- データを別の Kafka クラスターにミラーリングする Kafka MirrorMaker クラスター
- 監視用に追加の Kafka メトリクスデータを抽出する Kafka Exporter
- Kafka との HTTP ベースの通信を可能にする Kafka Bridge
- ブローカー間でトピックパーティションをリバランスする Cruise Control
これらのコンポーネントがすべて必要なわけではありません。ただし、Streams for Apache Kafka によって管理される Kafka クラスターには、最低限 Kafka が必要です。ユースケースに応じて、必要に応じて追加のコンポーネントをデプロイできます。追加のコンポーネントは、Streams for Apache Kafka によって管理されない Kafka クラスターでも使用できます。
2.1. Kafka コンポーネントのアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
KRaft ベースの Kafka クラスターは、メッセージ配信を担当するブローカーノードと、クラスターのメタデータを管理してクラスターを調整するコントローラーノードで構成されます。ノードの役割は、Streams for Apache Kafka のノードプールを使用して設定できます。
その他の Kafka コンポーネントは、特定のタスクのために Kafka クラスターとやり取りします。
Kafka コンポーネントの操作
- Kafka Connect
Kafka Connect は、コネクター プラグインを使用して Kafka ブローカーと他のシステムの間でデータをストリーミングする統合ツールキットです。Kafka Connect は、Kafka と、データベースなどの外部データソースまたはターゲットを統合するためのフレームワークを提供し、コネクターを使用してデータをインポートまたはエクスポートします。コネクターは必要な接続設定を提供します。
- ソース コネクターは、外部データを Kafka にプッシュします。
- sink コネクターは Kafka からデータを抽出します。
外部データは適切な形式に変換されます。
Kafka Connect は、必要なコネクターを使用してカスタムコンテナーイメージをビルドするように設定できます。
- Kafka MirrorMaker
- Kafka MirrorMaker は、同じデータセンター内または異なる場所にある 2 つの Kafka クラスター間でデータをレプリケートします。
- Kafka Bridge
- Kafka Bridge には、HTTP ベースのクライアントと Kafka クラスターを統合する API が含まれています。
- Kafka Exporter
- Kafka Exporter は、Prometheus メトリック (主にオフセット、コンシューマーグループ、コンシューマーラグおよびトピックに関連するデータ) として分析用にデータを抽出します。コンシューマーラグとは、パーティションに最後に書き込まれたメッセージと、そのパーティションからコンシューマーが現在取得中のメッセージとの間の遅延を指します。
- Apache ZooKeeper (任意)
- Apache ZooKeeper は、ブローカーとコンシューマーのステータスを保存および追跡するクラスター調整サービスを提供します。ZooKeeper は、コントローラーの選出にも使用されます。ZooKeeper を使用する場合は、Kafka を実行する前に ZooKeeper クラスターを準備しておく必要があります。ただし、KRaft の導入以降、Kafka ノードがクラスターの調整と制御をネイティブに処理するようになったため、ZooKeeper は不要になりました。