1.概述
2.重要类
ConsumerMetadata
NetworkClient
ConsumerNetworkClient
ConsumerCoordinator
Fetcher
3.协调器
协调器是用来协调消费者工作分配的。消费者启动后,在可以正常消费前,这个阶段的初始化工作。消费者能够正常运转起来,全有赖于协调器。
主要的协调器有如下两个:
1. 消费者协调器(ConsumerCoordinator)
2. 组协调器(GroupCoordinator)
此外还有任务管理协调器(WorkCoordinator),用作kafka connect的works管理
kafka原来consumer信息依赖于zookeeper存储,当代理或消费者发生变化时,引发消费者平衡,此时消费者之间是互不透明的,每个消费者和zookeeper单独通信,容易造成羊群效应和脑裂问题。为了解决这些问题,kafka引入了协调器。
服务端引入组协调器(GroupCoordinator),消费者端引入消费者协调器(ConsumerCoordinator)。每个broker启动的时候,都会创建GroupCoordinator实例,管理部分消费组(集群负载均衡)和组下每个消费者消费的偏移量(offset)。每个consumer实例化时,同时实例化一个ConsumerCoordinator对象,负责同一个消费组下各个消费者和服务端组协调器之前的通信。