← 返回首页

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 配置进行重试。