Kafka 在 0.11.0 版本中引入了事务(Transaction)功能,主要目的是为了支持 Exactly-Once Semantics(精确一次语义),特别是在 "流处理"(Stream Processing)场景下的 Read-Process-Write(读取-处理-写入) 模式。 Kafka 的事务机制允许生产者将消息原子性地写入多个分区(Partition),即:要么所有消息都成功写入并对消费者可见,要么所有消息都丢弃,消费者不可见。 以下是 Kafka 支持事务的核心机制、组件和工作流程的详细解析: --- 1. 核心概念与组件 要理解 Kafka 事务,需要了解以下几个关键组件: 1. Transactional ID (事务 ID): 用户需要为 Producer 配置一个唯一的 。 这使得 Producer 在重启或故障恢复后,Broker 能识别出它是同一个 Producer,从而恢复之前的状态或清理未完成的事务。 2. Transaction Coordinator (事务协调器): 这是运行在 Broker 上的一个模块。 每个 都会映射到一个特定的 ...