KafkaProducer是kafka最重要的几个api之一。
1.KafkaProducer类结构
我们通过KafkaProducer中的属性链路来解析KafkaProducer的类结构。
属性链路对我们解析KafkaProducer的消息生产过程十分重要。
2.KafkaProducer线程模型
KafkaProducer进程中包含两个重要的线程:main和producer
2.1.KafkaProducer主线程
主线程名为main,执行过程如下图所示:
主线程最终把消息写入到了内存中,而内存中的数据需要通过io线程发送给Kafka Broker。
2.2.KafkaProducer IO线程
线程名前缀为kafka-producer-network-thread,IO线程执行过程如下图所示:
主要通过Sender来完成,kafka自身通过socket编程,以NIO方式实现对数据的发送。