Confluent Platform での Kafka Raft(KRaft)のプレビュー

重要

Kafka Raft(KRaft)メタデータモードは、現在プレビュー版です。これは、開発環境およびテスト環境のみでの評価用であり、本稼働環境での使用は想定されていません。KRaft モードは、新しい個別のクラスターでお試しください。

現時点では、Confluent Platform を実行する場合は、ZooKeeper も実行する必要があります。ZooKeeper サービス は、永続的なクラスターメタデータを保存するもので、これまで Apache Kafka® および Confluent Platform の非常に重要なコンポーネントでした。

現在、Kafka は、メタデータを ZooKeeper に保存することから、Kafka への直接保存に移行中です。Confluent Platform 7.0.0 では、Kafka Raft(KRaft)メタデータモードを試せるようにプレビュー版が提供されています。

新しい KRaft モードでは、Raft コンセンサスプロトコルのイベントベースのバリアントを使用するクォーラムコントローラーサービスが提供されています。これにより、メタデータを ZooKeeper と Kafka に分けて扱うのではなく Kafka 自体に統合することで、Kafka のアーキテクチャがシンプルになります。

次の図は、メタデータ管理での ZooKeeper と KRaft の実行の違いを単純化したものです。

../_images/cp-zk-kraft.ja.png

KRaft モードと ZooKeeper を使用しない Kafka の詳細については、『A First Glimpse of a Kafka without Zookeeper』を参照してください。

KRaft GA の準備

重要

Confluent Cloud をご利用の場合は、クライアント構成の変更は不要で、Confluent Platform でメタデータ管理を KRaft に移行することによる影響もありません。

来年には、KRaft モードが Confluent Platform のデフォルトのメタデータモードになる予定です。この変更に対応する準備を開始することが重要です。Confluent Platform 7.0 リリースには、KRaft への移行に伴う API の重大な変更がすべて含まれています。これは、将来 KRaft への移行が完了したときにシームレスな切り替えを行うのに役立ちます。

時間を取って、本稼働環境以外のローカルの設定で KRaft モードの Kafka をお試しください。クライアントおよびツールのメタデータの送信元の変更(ZooKeeper からではなくブローカーから直接取得)について調査しておくことも重要です。これについては、『Preparing Your Clients and Tools for KIP-500: ZooKeeper Removal from Apache Kafka』に記載されています。次の表は、一部のサービスおよび構成値へのアクセス方法の変更をまとめたものです。

機能 ZooKeeper 使用 KRaft 使用(ZooKeeper なし)
クライアントおよびサービス zookeeper.connect=zookeeper:2181 bootstrap.servers=broker:9092
Schema Registry kafkastore.connection.url=zookeeper:2181 kafkastore.bootstrap.servers=broker:9092
管理ツール kafka-topics --zookeeper zookeeper:2181
kafka-topics --bootstrap-server broker:9092 ...
--command-config properties (ブローカーとの接続用)
Kafka クラスター ID の取得 zookeeper-shell zookeeper:2181 get/cluster/id コマンドラインから kafka-metadata-quorum または confluent cluster describe --url を使用するか、metadata.properties または http://broker:8090 --output json を表示

現在の制限事項と既知の問題

  • Multi-Region Clusters Confluent Platform 機能では ZooKeeper が必要であるため、現時点では KRaft と併用できません。
  • Confluent Platform 7.0.x 以前(非 KRaft)を実行する送信元クラスターと、KRaft モードで実行する送信先クラスターとの間の Cluster Linking はサポートされていません。リンク作成は成功する可能性がありますが、最終的に接続は失敗します。この問題を回避するために、送信元クラスターでは Confluent Platform バージョン 7.1.0 以降を実行する必要があります。Confluent Platform 送信元クラスターから Confluent Cloud 送信先クラスターへのリンクがある場合は、送信元クラスターを Confluent Platform 7.1.0 以降にアップグレードすることでこの問題を回避してください。

最新情報

Confluent Platform への KRaft の導入に関する追加の発表については、Confluent のブログ および「Confluent Platform 7.1.1 リリースノート」をご確認ください。