DUICUO

Apache Kafka が ZooKeeper を放棄したのはなぜですか?

分散型イベントストリーミングプラットフォームのリーダーであるApache Kafkaのユーザーの皆様に、変更が迫っています。Kafkaのメタデータ管理ツールであるApache ZooKeeperは、まもなく段階的に廃止され、社内技術に置き換えられます。

Apache Kafkaプロジェクト管理委員会のメンバーであり、Kafkaを活用する企業Confluentのエンジニアでもあるコリン・マッケイブ氏は、この変更の理由を説明しました。マッケイブ氏によると、ZooKeeperは永続的なクラスタメタデータを保存し、動的な構成やトピック、そしてトピック内のパーティションのメンテナンスを処理します。しかし、ZooKeeperは管理レイヤーをさらに追加します。マッケイブ氏は、メタデータをKafka内部に保存することで管理が容易になり、バージョン管理などの問題もより確実に解決できると述べています。

Kafka Raft(KRaft)は、メタデータを内部管理するためのプロトコルであり、ZooKeeperに代わるものです。KRaftモードでは、Kafkaのメタデータは分散ログに保存されます。McCabe氏によると、主なメリットはスケーラビリティですが、管理性も向上します。Kafkaユーザーは、Kafkaクラスターを管理するために別のシステムを導入する必要がなくなります。

ZooKeeper がいつ廃止されるかは不明ですが、今後1~2週間以内にタイムラインに関する投票が行われる予定です。現時点では、Kafka 3.3 のリリースで KRaft の一般提供を発表することが推奨されています。ZooKeeper は後続のバージョンで廃止され、Kafka 4.0 で削除される予定です。

Kafka 3.3は8月にリリースされる予定で、ZooKeeperとKRaftの両方のオプションが含まれます。ZooKeeperの終了日はまだ未定です。「KRaftモードは間もなく、ほぼ今年中に実稼働する予定です」とMcCabe氏は述べています。「これはプロジェクトにとって大きな前進となるでしょう。」

現在、Kafkaの開発者はKRaftとZooKeeperの完全な機能的整合性の実現に取り組んでおり、その目標達成に近づいていると言われています。KRaftモデルは実際には2021年4月にリリースされたKafka 2.8から存在していましたが、当時は本番環境では利用できませんでした。Kafka 3.3が最初の本番環境で利用可能なバージョンとなります。McCabe氏は、ZooKeeperに慣れている開発者にとって、KRaftへの移行はそれほど難しい学習曲線ではないと予想しています。開発者向けには同じAPIがサポートされますが、運用担当者はいくつかの点を習得する必要があるかもしれません。「新しい管理者にとっては実際に使いやすく、既存の管理者にとっては移行が管理しやすいものになることを願っています。」

Confluentは、ZooKeeperの廃止をKafkaコミュニティにとって重要な一歩と捉えていると、Kafkaの共同開発者でありConfluentの共同創設者でもあるJun Rao氏は述べています。「これにより、デプロイメントと運用が簡素化され、メタデータの処理効率が向上するため、スケーラビリティが10倍向上します。コミュニティと協力してこの取り組みを進めていくことを楽しみにしており、近いうちに本番環境で利用できるようになることを期待しています。」


元のタイトル: Apache Kafka が ZooKeeper を廃止する理由

原作者:ポール・クリル