Come spiegato da altri, Kafka (anche nella versione più recente) non funzionerà senza Zookeeper.
Kafka utilizza Zookeeper per quanto segue:
Elezione di un controller . Il controller è uno dei broker ed è responsabile del mantenimento della relazione leader / follower per tutte le partizioni. Quando un nodo si spegne, è il controller che dice ad altre repliche di diventare leader della partizione per sostituire i leader della partizione sul nodo che sta andando via. Zookeeper viene utilizzato per eleggere un controller, assicurarsi che ce ne sia solo uno ed eleggerne uno nuovo in caso di crash.
Appartenenza al cluster : quali broker sono attivi e fanno parte del cluster? anche questo è gestito tramite ZooKeeper.
Configurazione argomento : quali argomenti esistono, quante partizioni hanno ciascuna, dove sono le repliche, chi è il leader preferito, quali sostituzioni di configurazione sono impostate per ciascun argomento
(0.9.0) - Quote : quanti dati è consentito a ciascun client di leggere e scrivere
(0.9.0) - ACL - chi è autorizzato a leggere e scrivere su quale argomento (vecchio consumatore di alto livello) - Quali gruppi di consumatori esistono, chi sono i loro membri e qual è l'ultimo offset ottenuto da ciascun gruppo da ciascuna partizione.
[da https://www.quora.com/What-is-the-actual-role-of-ZooKeeper-in-Kafka/answer/Gwen-Shapira ]
Per quanto riguarda il tuo scenario, solo un'istanza di broker e un produttore con più consumatori, puoi utilizzare il pulsante per creare un canale e inviare l'evento a quel canale a cui il consumatore può iscriversi e consegnare quegli eventi.
https://pusher.com/