Kafka 生产者的 (acknowledgments)参数是 Kafka 中最关键的配置之一,它决定了生产者在发送消息后,需要等到多少个 Broker 确认收到消息,才算发送成功。 这个参数直接权衡了系统的数据可靠性(Durability)与吞吐量/延迟(Performance)。 以下是 、 和 (all) 的详细含义及区别: --- 1. (发后即忘 / Fire and Forget) 含义:生产者把消息发送出去后,完全不等待 Broker 的任何响应,直接认为发送成功。 工作机制: Producer 将消息写入网络缓冲区后立即返回成功。 Broker 不需要回复确认(Ack)。 优点: 吞吐量最高。 延迟最低。 缺点: 数据丢失风险极高。如果 Broker 宕机、网络异常或者 Leader 选举期间,生产者完全不知道消息没送到,数据直接丢失。 适用场景: 允许丢失数据的场景,如日志收集、非核心指标监控数据。 --- 2. (Leader 确认 / Default in older versions) 含义:生产者发送消息后,只要 Leader 副本 成功写入本地日志,B...