Kafka经纪人存储元数据吗?

时间:2018-05-12 12:55:36

标签: apache-kafka confluent

Kafka经纪人是否存储生产者API使用的元数据(例如哪些分区是主题的领导者等)?根据我的理解,这个元数据存储在Zookeeper中,是否正确?如果确实如此,那么Zookeeper如何使用最新信息更新经纪人?

2 个答案:

答案 0 :(得分:1)

Kafka是一个分布式系统,用于使用Zookeeper,它负责控制器选择,主题配置,群集等。

更确切地说,Zookeeper启动控制器选举。控制器代理是Kafka集群中的单个代理,负责处理每个分区的领导经纪人和关注者。当某个特定代理被删除时,控制器会让其他副本知道(为了处理分区领导等)。此外,当控制器出现故障时,Zookeeper会启动新的选举,以便选出将作为控制器的新经纪人。

此外,Zookeeper知道哪些经纪人是Kafka集群的一部分,哪些经纪人还活着。同样,它也知道特定于主题的信息,例如存在哪些主题,每个分区有多少分区,副本在哪里等等。

Zookeeper还存储有关配额和ACL的信息,即每个客户允许消费/生产的数据量以及允许消费者从特定主题生产或生产的数据量。

答案 1 :(得分:0)

所有Kafka代理都可以回答描述群集当前状态的元数据请求:主题是什么,这些主题具有哪些分区,哪些代理是这些分区的领导者等。

ZooKeeper负责:

  • 选择一个控制器代理 - 并确保只有一个
  • 群集成员资格 - 允许代理加入群集
  • 主题配置 - 存在哪些主题,每个分区有多少个分区,副本在哪里,谁是首选领导者,为每个主题设置了哪些配置覆盖
  • 配额 - 允许每个客户端读取和写入的数据量
  • ACL - 允许谁读取和写入哪个主题

Kafka和ZooKeeper之间经常进行通信,以便ZooKeeper知道Kafka代理仍处于活动状态(ZooKeeper心跳机制),并且还响应事件,例如正在创建的主题或主题分区的副本不同步

相关问题