关于java:KafkaProducer发送消息原理剖析

5次阅读

共计 390 个字符,预计需要花费 1 分钟才能阅读完成。

外围组件

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 线程,从缓冲区拉取音讯,将数据发送到网络中去

正文完
 0