kafka-go源码解析三(Reader)
概要
Reader是暴露给应用程序的接口,前一章提到的Consumer Group是集成在本类型中使用的。
之前提到的Consumer Group主要处理消费topic的相关metadata信息,如relabance,commit offset,heartbeat等。而Reader类主要负责从kafka brokers中拉取数据。Reader有两种使用模式,一是单topic单partition的情形,由Application自己去管理offset的信息;而是Consumer Group的情形。因此在代码中有兼容两种使用模式。
结构示意图
应用程序通过FetchMsg方法拉取数据,FetchMsg是Reader类型的一个核心方法,应用程序对应底层如何实现的无感知。
实际从kafka broker中拉取数据的是reader类型,reader和Reader之间的message传输是通过Msg Channel完成的。一个reader实例对应一个partition,因此如果该Reader类型需要同时处理3个partition的数据,它会关联
共有 0 条评论