Kafka经纪人是否存储生产者API使用的元数据(例如哪些分区是主题的领导者等)?根据我的理解,这个元数据存储在Zookeeper中,是否正确?如果确实如此,那么Zookeeper如何使用最新信息更新经纪人?
答案 0 :(得分:1)
Kafka是一个分布式系统,用于使用Zookeeper,它负责控制器选择,主题配置,群集等。
更确切地说,Zookeeper启动控制器选举。控制器代理是Kafka集群中的单个代理,负责处理每个分区的领导经纪人和关注者。当某个特定代理被删除时,控制器会让其他副本知道(为了处理分区领导等)。此外,当控制器出现故障时,Zookeeper会启动新的选举,以便选出将作为控制器的新经纪人。
此外,Zookeeper知道哪些经纪人是Kafka集群的一部分,哪些经纪人还活着。同样,它也知道特定于主题的信息,例如存在哪些主题,每个分区有多少分区,副本在哪里等等。
Zookeeper还存储有关配额和ACL的信息,即每个客户允许消费/生产的数据量以及允许消费者从特定主题生产或生产的数据量。
答案 1 :(得分:0)
所有Kafka代理都可以回答描述群集当前状态的元数据请求:主题是什么,这些主题具有哪些分区,哪些代理是这些分区的领导者等。
ZooKeeper负责:
Kafka和ZooKeeper之间经常进行通信,以便ZooKeeper知道Kafka代理仍处于活动状态(ZooKeeper心跳机制),并且还响应事件,例如正在创建的主题或主题分区的副本不同步