读一读Kafka源码(一) – Producer – 问题
源码浩繁, 就像被卷成一捆的毛线, 如果没有找到合适的线头, 很难捋清楚. 本文作为KafkaProducer分析的开篇, 重点提出Producer作为消息生产者必然面对的一些问题, 往后的文章我们将带着这些问题, 逐渐深入. 有问题不一定有答案, 没问题绝对没答案 KafkaProducer为何物? 如其名, 是Kafka的消息生产者(Producer), 早期版本只有scala的实现, 从0. …
源码浩繁, 就像被卷成一捆的毛线, 如果没有找到合适的线头, 很难捋清楚. 本文作为KafkaProducer分析的开篇, 重点提出Producer作为消息生产者必然面对的一些问题, 往后的文章我们将带着这些问题, 逐渐深入. 有问题不一定有答案, 没问题绝对没答案 KafkaProducer为何物? 如其名, 是Kafka的消息生产者(Producer), 早期版本只有scala的实现, 从0. …
KafkaProducer是客户端, 它的服务端是Kafka的整个集群. 要想获取集群提供的服务, 第一步自然是掌握集群的状态信息 我是谁? 我在哪? 我在干什么? Metadata 集群元数据的获取, 这是集群客户端必须解决的第一个问题, 从第一次出现KafkaProducer这个类的提交记录开始, 已经在类中定义了Metadata变量: 而在最早版本的Metadata中, 已经定义了几种最基础 …
Kafka的生产者,使用了消息队列的方式来实现。 KafkaProducer#doSend RecordAccumulator#append 在acc内部为每个topic-p维护一个队列batch 在往batch添加了数据之后, 得到一个FutureRecordMetadata, 用于异步执行回调方法 thunks是batch内管理FutureRecordMetadata的容器 每个batch最终 …