Jak wyjaśnili inni, Kafka (nawet w najnowszej wersji) nie będzie działać bez Zookeepera.
Kafka używa Zookeepera do następujących celów:
Wybór kontrolera . Kontroler jest jednym z brokerów i jest odpowiedzialny za utrzymywanie relacji lider / obserwator dla wszystkich partycji. Kiedy węzeł zostaje zamknięty, to kontroler mówi innym replikom, aby stały się liderami partycji, aby zastąpić liderów partycji w węźle, który odchodzi. Zookeeper służy do wybierania kontrolera, upewnij się, że jest tylko jeden i wybierz nowy, jeśli ulegnie awarii.
Członkostwo w klastrze - jacy brokerzy żyją i są częścią klastra? jest to również zarządzane przez ZooKeeper.
Konfiguracja tematu - jakie tematy istnieją, ile partycji ma każdy z nich, gdzie są repliki, kto jest preferowanym liderem, jakie nadpisania konfiguracji są ustawione dla każdego tematu
(0.9.0) - Kwoty - ile danych może odczytywać i zapisywać każdy klient
(0.9.0) - Listy ACL - kto może czytać i pisać w jakim temacie (stary konsument wysokiego poziomu) - Które grupy konsumentów istnieją, kim są ich członkowie i jakie jest najnowsze przesunięcie każdej grupy z każdej partycji.
[z https://www.quora.com/What-is-the-actual-role-of-ZooKeeper-in-Kafka/answer/Gwen-Shapira ]
Jeśli chodzi o twój scenariusz, tylko jedna instancja brokera i jeden producent z wieloma konsumentami, możesz użyć popychacza do utworzenia kanału i wypchnąć wydarzenie do tego kanału, który konsument może subskrybować i udostępniać te wydarzenia.
https://pusher.com/