一、kafka集群实际上指的就是broker集群。
二、zk在kafka集群中的作用。
1.集群管理
kafka是通过zk来进行分布式协调和管理的。kafka需要注册到一个zk集群中,已实现集群元数据管理和控制
2.元数据管理
kafka集群中所有的broker信息、topic和partition的状态信息都会存储在zk节点上,当新的broker节点加入到集群或者topic和partition信息发生变化时,kafka会将这些信息存储到zk中。
3.负责进行Leader选举
kafka中的每一个partition都会有一个Leader,zk可以负责进行Leader的选举,当一个Leader挂掉后,集群可以快速选择新的Leader并继续服务。(broker在启动时会去zk创建controller,第一个创建成功的就会被指定为控制器)
4.协调与管理
kafka中的消费者组信息、消费者offset信息都会存储在zk中,当消费者加入或者退出一个消费者组时,zk都会负责重新分配partition给消费者,并且跟进新的offset信息。