他の人が説明したように、Kafka(最新バージョンでも)はZookeeperなしでは機能しません。
KafkaはZookeeperを次の目的で使用します。
コントローラーの選出。コントローラーはブローカーの1つであり、すべてのパーティションのリーダー/フォロワー関係を維持する責任があります。ノードがシャットダウンすると、他のレプリカにパーティションリーダーになって、ノードのパーティションリーダーを置き換えるように指示するのはコントローラーです。Zookeeperを使用してコントローラーを選択します。コントローラーが1つだけであることを確認し、クラッシュした場合は新しいコントローラーを選択します。
クラスターメンバーシップ -どのブローカーが有効で、クラスターの一部ですか?これもZooKeeperを通じて管理されます。
トピックの構成 -存在するトピック、各パーティションの数、レプリカの場所、優先リーダー、各トピックに設定されている構成のオーバーライド
(0.9.0)-割り当て -各クライアントが読み書きできるデータの量
(0.9.0)-ACL-誰がどのトピック(古い高レベルのコンシューマー)に対して読み書きできるか-どのコンシューマーグループが存在し、誰がメンバーであり、各グループが各パーティションから取得した最新のオフセットはどれか。
[ https://www.quora.com/What-is-the-actual-role-of-ZooKeeper-in-Kafka/answer/Gwen-Shapiraから]
シナリオでは、1つのブローカーインスタンスと複数のコンシューマーを持つ1つのプロデューサーのみが、プッシャーを使用してチャネルを作成し、コンシューマーがそれらのイベントをサブスクライブして渡すことができるチャネルにイベントをプッシュできます。
https://pusher.com/