다른 사람들이 설명했듯이 Kafka (가장 최신 버전에서도)는 Zookeeper 없이는 작동하지 않습니다.
Kafka는 다음을 위해 Zookeeper를 사용합니다.
컨트롤러 선출 . 컨트롤러는 브로커 중 하나이며 모든 파티션에 대한 리더 / 팔로어 관계를 유지 관리합니다. 노드가 종료되면 컨트롤러는 다른 복제본이 파티션 리더가되도록하여 사라지는 노드의 파티션 리더를 교체하도록 지시합니다. Zookeeper는 컨트롤러를 선택하고, 단 하나만 있는지 확인하고 충돌하는 경우 새 컨트롤러를 선택하는 데 사용됩니다.
클러스터 멤버쉽 -어떤 브로커가 살아 있고 클러스터의 일부입니까? 이것은 또한 ZooKeeper를 통해 관리됩니다.
주제 구성 -존재하는 주제, 각 파티션 수, 복제본 위치, 선호하는 리더, 각 주제에 대해 설정된 구성 대체
(0.9.0)-할당량 -각 클라이언트가 읽고 쓸 수있는 데이터 양
(0.9.0)-ACL- 누가 어떤 주제 (오래된 상위 레벨 소비자)를 읽고 쓸 수있는 사람-어떤 소비자 그룹이 있는지, 누가 회원인지, 각 그룹이 각 파티션에서 얻은 최신 오프셋은 무엇입니까?
[ https://www.quora.com/What-is-the-actual-role-of-ZooKeeper-in-Kafka/answer/Gwen-Shapira에서 ]
시나리오에 따라 하나의 브로커 인스턴스와 여러 소비자가있는 하나의 프로듀서 만 푸셔를 사용하여 채널을 생성하고 소비자가 해당 이벤트를 구독하고 처리 할 수있는 해당 채널로 이벤트를 푸시 할 수 있습니다.
https://pusher.com/