Como explicaron otros, Kafka (incluso en la versión más reciente) no funcionará sin Zookeeper.
Kafka usa Zookeeper para lo siguiente:
Elegir un controlador . El controlador es uno de los corredores y es responsable de mantener la relación líder / seguidor para todas las particiones. Cuando un nodo se apaga, es el controlador el que le dice a otras réplicas que se conviertan en líderes de partición para reemplazar a los líderes de partición en el nodo que está desapareciendo. Zookeeper se usa para elegir un controlador, asegúrese de que solo haya uno y elija uno nuevo si falla.
Membresía del clúster : ¿qué corredores están vivos y son parte del clúster? Esto también se gestiona a través de ZooKeeper.
Configuración del tema : qué temas existen, cuántas particiones tiene cada uno, dónde están las réplicas, quién es el líder preferido, qué anulaciones de configuración se establecen para cada tema
(0.9.0) - Cuotas : cuántos datos se le permite a cada cliente leer y escribir
(0.9.0) - ACL : quién puede leer y escribir sobre qué tema (antiguo consumidor de alto nivel): qué grupos de consumidores existen, quiénes son sus miembros y cuál es el último desplazamiento que cada grupo obtuvo de cada partición.
[de https://www.quora.com/What-is-the-actual-role-of-ZooKeeper-in-Kafka/answer/Gwen-Shapira ]
Con respecto a su escenario, solo una instancia de corredor y un productor con múltiples consumidores, puede usar el impulsor para crear un canal y enviar un evento a ese canal al que el consumidor puede suscribirse y entregar esos eventos.
https://pusher.com/