Kafka客户端整体流程
2021-11-06 12:15:53 10 举报
kafka客户端流程梳理
作者其他创作
大纲/内容
Request
应用逻辑层
主线程
网络客户端NetworkClient
InFlightRequest
RecordAccmulator主要用来缓存消息,以便Sender线程可以批量发送,进而减少网络传输的资源消耗以提升性能。可以通过buffer.memory配置,默认32MB。如果生产者发送消息的速度超过发送到服务器的速度,则会导致生产者空间不足,这个时候KafkaProducer的send()方法调用要么被阻塞,要么抛出异常,这个取决于参数【max.block.ms】的配置,默认60秒。
本地消息收集器RecordAccumulator
Sender
ProducerBatch
Kafka Cluster
网络IO层
结构转换
序列化器Serializer
创建Request
Response
Sender线程
提交Selector准备发送
ProducerBatchbatch.size : 16K
ProducerRecord
缓存
拦截器ProducerInterceptors
分区器Partitioner
分区1
node3
分区2
KafkaProducer生产者发送器
ndoe1
node2
Selector
分区3
0 条评论
回复 删除
下一页