Kafka生产者架构
2022-06-14 14:05:30 0 举报
Kafka生产者架构
作者其他创作
大纲/内容
Deque<ProducerBatch>
KafkaProducer 主线程
Node-N
⑥. 遍历ReadyNodes 找到每个Node需要发送的Batch并组装成Request
Ⅰ. 选择最末尾的ProducerBatch
ProducerBatch
Node-0
TopicPartition-*
11. 请求完成将Request在队列中移除
序列化Serializer
分区leader在Node-*
⑦. 将组装 好的待发送Request放到队列中
服务端网络通信模型请看另一张图
Request
Node-1
ProducerBatch(16k)
Selector
...
12. 将已发送Batch占 用的内存大小恢复到可使用内 存大小中
服务端
单个Request最大数据量 = max.request.size
inFlightRequests
队列最大数量 =max.in.flight.requests.per.connection
TopicPartition-2
石臻臻的杂货铺
NetWorkClient
消息累加器 RecordAccumulator
TopicPartition-1
KafkaChannel
创建新的Batch
分流
元信息更新waitOnMetadata
⑩. 返回数据
ProducerBatch(非16k)
③
KafkaProducersend
Kafka Producer 整体架构
⑨ 和服务端通信
②
④
Sender线程 持续运行
⑤.寻找ReadyNodes
分区器Partitioner
①
ReadyNodes
根据分区号选择合适的TopicPartition队列
ProducerBatch(非16 k)
拦截器ProducerInterceptor
⑧. 将Request提交给Selector
收藏
收藏
0 条评论
回复 删除
下一页