对于整个kafka的集群,基本是使用Zookeeper实现的,每当一个broker启动的时候,会将自己在Zookeeper中注册
注册包含的属性包含:
Listener_security_protocol_map,指定通信协议
Endpoints, 端口列表
Rack,机架信息,方便分配副本的时候,分配到多个机架上.
Host: broker主机名或者IP
Port: broker端口号
Timestamp:启动时间.
而注册信息保存在ZK的一个临时节点上,利用临时节点是否存在,判断broker的状态.
而Zk上不仅保存了broker的基本信息,还包括了其他的一些集群信息
其中/broker保存了集群的信息,topic信息
/controller,保存了controller组件
/admin 保存管理脚本的数据结果
/isr_change_notification,保存ISR列表变化的分区列表
/config 保存了Kafka集群下的配置信息,可能每个topic有自己的配置,就保存在/config/topics/<topic>
/cluster 保存了Kafka集群的简要信息
/controller_epoch,保存controller组件的版本号,来隔离无效的controller请求.