核心组件

1.ProducerInterceptors 拦截器
2.Sender 发送线程
3.Cluster 集群信息(结点、主题、分区)
4.ProducerMetadata 生产者元数据
5.RecordAccumulator 消息缓冲累加器
6.Serializer 序列化器
7.Partitioner 分区器

send()发生消息流程

1.ProducerInterceptors拦截消息,调用onSend()方法
2.调用doSend(),真正开始发生消息流程
3.waitOnMetadata,发送消息前确保主题分区元数据可用
4.调用Serializer对key和value序列化
5.调用Partitioner进行分区路由选择(哈希/轮询/粘性)
6.调用RecordAccumulator将消息放到缓冲区中队列的RecordBatch中
7.唤醒Sender线程,从缓冲区拉取消息,将数据发送到网络中去


小强大人
34 声望4 粉丝