先来看个主要的层次图

1.coordinator 字面意思就是协调者是ConsumerCoordinator类的对象。ConsumerCoordinator继续AbstractCoordinator提供心跳服务,心跳超时时间是5S。当我们生成kafkaconsumer对象的时候,如果没有配置groupId coordinator就为null. coordinator这个类我在consumer里面的接口调用一般是用来offset操作的
2.fetcher 这个类主要是全权负责socket通信的,对服务器的请求和消息的存储都是在这个类里面进行的。
3.matedata主要是存放结点信息的,最开始的connect address。每个IP地址作为一个Node.这个在服务端被称作broker.每次consumer每次请成response成功后,都会来调用matedate的update接口,将Node和partition最新的数据填充进去。MetadataCache这个类是专门用来存储broker和partiton信息的
4.下面就是网络层的通信了,这块用的是NIO的方式。代码这里就不截图了,网上讲代码的一大堆。这里主要是把思路理清晰,细节的东西在思路清晰之后很容易看明白
kafkaConsumer流程分析
最新推荐文章于 2025-06-15 16:19:47 发布
本文深入剖析Kafka Consumer的内部工作原理,包括协调者ConsumerCoordinator的心跳服务、fetcher类负责的socket通信及消息存储、metadata存储broker和partition信息的过程,以及NIO方式的网络通信实现。
959

被折叠的 条评论
为什么被折叠?



