ZooKeeper在集群中的角色?

时间:2017-06-22 14:53:43

标签: java apache-kafka apache-zookeeper

如果我有群集托管1主题有三个分区。所以ZooKeeper(ZK)集群托管3个代理实例。

根据我的理解,

  1. Producer将与ZooKeeper交互以在代理上发布消息。
  2. ZK将根据每个代理实例的负载在内部决定发布消息所需的分区。经纪人还将与ZK互动 维持每个消费者实例的抵消
  3. 类似地,Consumer将与ZooKeeper交互以使用来自代理的消息。 ZK将根据负载从正确的代理处获取消息。
  4. 但在阅读Workflow of Queue Messaging / Consumer Group部分的粗体文字后,我感到困惑    在kafka tutorial。我的理解是错误的吗?基于以下看起来像生产者/消费者不直接与zookeeper交互。是不是在旁边  ZK与生产者/消费者互动的地方。如果是谁(Zookeeper或代理)需要发布或使用哪个代理实例消息?

      

    ZooKeeper服务主要用于通知生产者和消费者   Kafka系统中任何新经纪人的存在或失败   卡夫卡系统的经纪人。根据收到的通知   关于经纪人然后生产者的存在或失败的Zookeeper   消费者做出决定并开始协调他们的任务   其他一些经纪人。基本上Apache Zookeeper是一个分布式的   配置和同步服务

1 个答案:

答案 0 :(得分:1)

Kafka使用zookeeper: 1.领导者选择:复制因子较高的主题分区需要这样做。想法是选择一个节点作为分区的领导者,它跟踪对跟随者的偏移管理和复制。 ZK用于选举领导者以确保在任何时候都有一位可用的领导者。 2.集群成员:管理经纪人 3.主题:管理群集中存在的主题,分区数量,副本数量,副本位置等...

特定消费者: 您可以选择在ZK上管理消费者抵消。因此,ZK将管理最新的抵消和消费者群体的成员。

我希望这能回答你的问题