协调器
kafka有消费者协调器、组协调器和任务管理协调器
消费者协调器ConsumerCoordinator
每个KafkaConsumer实例化时都会实例化一个ConsumerCoordinator对象,负责同一个消费组下各消费者与服务端组协调器之间的通信,向组协调器提交加入消费组、离开消费组以及提交消费偏移量等请求
组协调器GroupCoordinator
每个KafkaServer启动时都会创建一个GroupCoordinator实例,用于管理消费组和该消费组下各消费者的消费偏移量以及消费者再平衡,负责对组内消费者提交的相关请求进行处理,同时管理与之连接的消费偏移量的提交,将每个消费者偏移量保存在kafka的内部主题当中
存储的信息
- 对每个存在的topic,可以有多个消费者组订阅同一个topic(消息广播)
- 对每个消费者组,元数据如下
- 订阅的topic列表
- 消费者组的配置信息
- 组内每个消费者的元数据,如主机名、consumer id等
- 每个正在消费的topic分区的当前偏移量
- 分区的owership元数据,包括消费者消费的分区映射关系