消息发送流程
2022-03-10 14:21:44 0 举报
Kafka消息发送流程
作者其他创作
大纲/内容
重试?
retries
Request2
Request1
send(ProducerRecord)
外部数据
Kafka Producer 生产者
Broker1
分区3
Producer
acks:0: 生产者发送过来的数据,不需要等数据落盘应答 不等待broker的ack应答,这一操作提供最低的延迟,broker还没有落盘就返回,当broker故障可能导致数据丢失 (不建议使用)1: 生产者发送过来的数据,Leader收到数据后应答 如果fllower同步之前,leader故障,可能数据丢失 (日志相关)-1(all): 生产者发送过来的数据,Leader和ISR队列里面的所有节点收齐数据后应答。-1和all等价 在fllower同步之后,broker发送ack之前,leader故障,会重复投递造成数据重复(建议生产使用,业务上做好幂等解决数据重复问题)
Sender(读取数据)
分区1
Broker2
Interceptors拦截器
DQueue
应答acks
ProducerBatch(默认16K)
RecordAccumulator(默认32M)
Selector
...
否
Serializer序列化器
Partitioner分区器
Sender线程
是
分区2
main线程
成功?
发送
Kafka集群
达到batch.size或linger.ms
NetworkClient
0 条评论
下一页