春节放假,因为疫情*,回不了老家,呆在家里无所事事,把kafka的客户端源码又拿出来仔细看了一下,本来想写几篇总结博客,但是我发现,想写的网上都已经有人写过了,那就不用再白费力气了,直接捡几篇好文章放上来。
还是做个简单的总结,以备自己后续查看。
下图是我画的一个kafka消费者客户端基本结构图,KafkaConsumer内部有两个主要模块,一个是ConsumerCoordinator,用于维护消费组和分区信息,包括连接coordinator、加入group、分配分区、提交offset等,在加入group后,还会启动HeartBeatThread线程,用于定时向kafka服务端心跳信息。另一个是Fetcher,用于从kafka服务端拉取数据。
- 关于kafka消费者的总体代码解读:
https://www.zhenchao.org/2019/06/19/kafka/kafka-consumer/ - 关于kafka的ConsumerNetworkClient的代码解读:
https://zhmin.github.io/posts/kafka-consumer-network-client/ - 关于kafka的NetworkClient的代码解读:
https://zhmin.github.io/posts/kafka-networkclient/ - 关于kafka的selector的代码解读:
https://www.cnblogs.com/devos/p/5699839.html