kafka
kafka
消费组:一个消费组里包含一个或者多个消费者,一个patition只能被一个消费组里的一个consumer消费
consumer消费patition时是根据offerset来顺序消费的,
这个offerset在旧版里是保存在zookeeper,在新版是保存在kafka内部
当消费组内的consumer启动时,第一个启动的consumer会成为消费组的coordinator
消费组里的消费者会跟消费组里的coordinator发送hearthbeat,以保持consumer自己在线
当消费组内的consumer数量发生变化(譬如某个consumer宕机,增加了某个consumer),或者订阅的patition数量发生了变化,就会触发rebalance
rebalance时,消费组内的所有consumer都会向coordinator发送joinGroup
在consumer加入消费组的时候,coordinator会从中选一个consumer当leader
消费组内的leader负责消费组的消费分配策略,即哪个patition被哪个consumer消费,消费分配策略一旦分配好,就会同步到消费组内的其他consumer,这样其他consumer就知道自己是消费哪些patition