Kafka系列之:Kafka事务、幂等生产者、事务生产者
Kafka系列之:Kafka事务、幂等生产者、事务生产者
- Kafka事务
- 关键组件
- 工作流程
- 消费者隔离级别
- 应用场景
- 配置示例
- 幂等性 Producer (Idempotent Producer)
- 事务型 Producer (Transactional Producer)
- 幂等生产者(Idempotent Producer)工作原理
- 幂等生产者示例
- 事务生产者(Transactional Producer)工作原理
- 事务生产者示例
Kafka事务
Kafka事务(Kafka Transactions)是Apache Kafka提供的一种机制,用于确保跨多个分区和Topic的消息生产与消费的原子性(Atomicity)和隔离性(Isolation)。以下是核心要点:
- 原子性写入
- 事务内的消息要么全部成功写入分区,要么全部失败(类似数据库事务的ACID特性中的原子性)。
- 跨分区操作
- 支持在单个事务中向多个Topic或分区发送消息(例如:订单处理中同时更新订单状态和库存)。
- Exactly-Once语义
- 与Kafka的幂等生产者(Idempotent Producer)结合,确保消息不重复、不丢失。
关键组件
事务协调器(Transaction Coordinator):
- 每个生产者事务由Broker上的一个协调器管理,负责分配事务ID并维护状态(如BEGIN、PREPARE_COMMIT、COMMIT等)。
事务日志(__transaction_state):
- 内部Topic,持久化存储事务元数据(如事务ID、分区信息、状态变更),确保故障恢复后事务状态一致
工作流程
初始化事务: