Comme expliqué par d'autres, Kafka (même dans la version la plus récente) ne fonctionnera pas sans Zookeeper.
Kafka utilise Zookeeper pour ce qui suit:
Élire un contrôleur . Le contrôleur est l'un des courtiers et est responsable du maintien de la relation leader / suiveur pour toutes les partitions. Lorsqu'un nœud s'arrête, c'est le contrôleur qui dit aux autres réplicas de devenir des chefs de partition pour remplacer les chefs de partition sur le nœud qui disparaît. Zookeeper est utilisé pour élire un contrôleur, assurez-vous qu'il n'y en a qu'un et en élire un nouveau s'il plante.
Appartenance au cluster - quels courtiers sont vivants et font partie du cluster? ceci est également géré via ZooKeeper.
Configuration des sujets - quels sujets existent, combien de partitions chacun possède, où se trouvent les répliques, qui est le leader préféré, quelles sont les remplacements de configuration définis pour chaque sujet
(0.9.0) - Quotas - combien de données chaque client est-il autorisé à lire et à écrire
(0.9.0) - ACL - qui est autorisé à lire et à écrire dans quel sujet (ancien consommateur de haut niveau) - Quels groupes de consommateurs existent, qui sont leurs membres et quel est le dernier décalage obtenu par chaque groupe pour chaque partition.
[de https://www.quora.com/What-is-the-actual-role-of-ZooKeeper-in-Kafka/answer/Gwen-Shapira ]
En ce qui concerne votre scénario, une seule instance de courtier et un producteur avec plusieurs consommateurs, vous pouvez utiliser le poussoir pour créer un canal et pousser l'événement vers ce canal auquel le consommateur peut s'abonner et transmettre ces événements.
https://pusher.com/