源码剖析-异步发送模式
# 4.19 Kafka源码剖析之异步发送模式
异步发送消息
在发送消息的时候设置回调函数:

调用KafkaProducer的send方法,该方法接收要发送的消息批,同时接收回调对象:

doSend的实现:

累加器append的实现:

tryAppend的实现:

tryAppend的实现:

Sender的run方法调用:


sendProducerData的实现:


sendProducerRequests的实现:

sendProduceRequest的实现:


上述方法如果得到broker的响应,就回调 handleProduceResponse 方法:

该方法对响应的处理:

completeBatch的实现:


completeBatch的实现:

batch的done方法:

触发回调函数的执行:

上图中执行用户设置的callback函数的onCompletion方法:

由于上述方法都是在Sender线程中调用,因此回调的onCompletion方法的执行也是异步的,跟用户的producer.send方法不在同一个线程。
回调的异步执行即是生产的异步发送模式。
上次更新: 2025/04/03, 11:07:08