8、关于Coordinator
参考链接: https://www.jianshu.com/p/f01f5f0309a9 一、旧版本Scala消费者客户端的缺陷 在kafka0.9及以前版本的consumer会在zookeeper上/consumers/groupId/ids、/consumers/groupId/topics、/consumers/groupId/owners下注册watch。一旦有变化,所有的consumer都得到通知,都进行rebanlace操作。 这种方式有几种缺陷: 1、zk压力很大 2、羊群效应,就是大量watch需要通知,可能会导致其他任务阻塞 3、脑裂效应,所有consumer都接收到通知,进行rebanlance,相互之间没法控制。 所以在kafka0.9版本引入了协调器Coordinator 二、协调器分类及功能 每个broker启动的时候都会创建一个GroupCoordinator,每个客户端都有一个ConsumerCoordinator协调器。 ConsumerCoordinator每间隔3S中就会和GroupCoordinator保持心跳,如果超时没有发送,并且再过Zookeeper.time.out = 10S中则会触发rebanlance 1、GroupCoordinator 1、接受ConsumerCoordinator的JoinGroupRequest请求 2