(1)协调器是什么?
什么是协调器,既然叫做协调器,那么肯定就是起协调作用的。
协调器协调的对象,是Kafka中的生产者与消费者的协调。
(2)为什么需要协调?
我们想象一下,Kafka中都是一个生产者,对应着一个消费组中的一个消费者(不可能存在一个消费组两个消费者消费同一个topic主题生产者),一群消费者中也只有一个leader,其他follower都是从leader同步数据的,如果某个leader由于网络延迟抖动,形成假死,如果没有协调器统一主持选举,就会出现多个leader的脑裂效应。同时一个topic中有新的消费者加入,也无法很好的协调分配分区消费,达不到加快消费速度的目的。
(3)协调器的分类?
组协调器
每个broker节点启动时,都会创建一个GrouCoordinator组协调器实例,负责管理消费组和消费组下每个消费者的偏移量。
作用:
1:从ISR列表中选举leader消费者(其他follower消费者从leader消费者获取数据同步)
2:将leader消费者协调器上交的分区分配结果同步给所有follower消费者协调器
3:通过心跳机制感知存活的消费者
4:管理全部消费者提交的偏移量,并保存在Kafka内部主题
5:针对AR的所有不同同步效率的消费者,区分出ISR和O