broker在zk中的存储信息:
在线broker id集合
分区leader和isr队列
controller辅助选举leader的存储信息
在zookeeper中的目录信息:
/brokers
/broker/ids/[0...N] 临时znode,存储所有的broker节点的broker.id值(全局不可重复)
/broker/topics/ 持久znode,存储所有的topic注册信息
/brokers/topics/[topic_name]/partitions/[0...N] 持久znode,存储某个topic的partitions所有分区信息,0-N代表partition-id
/brokers/topics/[topic]/partitions/[partitionId]/state 持久znode,存储某个分区的状态信息
/controller 存储Controller控制器所在的kafka broker信息
/controller_epoch 存储着Controller的选举次数,初始为0,每次重新选举后+1,用于防止broker脑裂,无视epoch更低的请求
/consumers
/consumers/[group_id]/ids/ 临时znode,存储Consumer的订阅信息,每个consumer都有一个唯一的ID
/consumers/[group_id]/owners/[topic_name]/[partition_id] 临时znode,存储着consumer group对应的各个topic及partition的消费者线程
/consumers/[group_id]/offsets/[topic_name]/[partition_id] 持久znode,存储着consumer group对应的各个topic及partition的消费偏移量
/admin
/admin/reassign_partitions 存储partition重分配信息
/admin/preferred_replica_election 存储最优replica选举信息
/admin/delete_topics 存储近期删除的topic
/isr_change_notification/ 存储ISR变更通知信息
新版kafka将消费者的位置信息(offset)保存在kafka内部的topic( __consumer_offsets )里面。