kafka集群搭建时,从服务器角度说:每个kafka服务器(broker)启动时会注册到集群管理器(zookeeper)上,其中一个会被选举为控制器(controller),控制器的主要作用是管理分区(partition)的主从副本(leader,follower),主副本挂掉后要从其他节点上的从副本中选举一个替代主副本;从客户端角度说:消费者(consumer)在连接服务器时,也会将消费者注册信息保存到集群管理器上,这样消费者就可以通过集群管理器来获取他所要消费的分区在哪个broker上,并和该分区建立socket连接,如果broker发生故障,也可以通过集群管理器迅速知道新的broker是哪个。生产者(producer)与集群管理器没有直接联系,生产者是直接与broker.list列表连接,从该列表可以获取对应主题下的每个分区的主副本,并与主副本建立socket连接。