← 返回首页
Kafka 的 Producer 发送消息流程是怎样的?
Producer 将消息发送给本地缓冲池(RecordAccumulator)。
Sender 线程从缓冲池拉取批次(Batch),发送给 Leader Broker。
Broker 接收后,根据 acks 参数决定何时返回成功:
acks=0:不等待响应,最快但可能丢数据。
acks=1:Leader 写入成功即返回(Leader 挂掉会丢数据)。
acks=all (或 -1):Leader 和所有 ISR (In-Sync Replicas) 副本都写入成功才返回(最安全,延迟稍高)。
如果发送失败,根据 retries 配置进行重试。