kafka 的事务的工作流程
时间: 2023-11-21 18:51:16 浏览: 166
kafka资源:Spring Boot演示应用程序,用于使用数据库等其他资源测试Kafka事务
Kafka 的事务工作流程如下:
1. 开启事务:生产者通过调用 KafkaProducer 的 beginTransaction() 方法来开启一个事务。在事务开始后,生产者只能向事务中添加消息,不能发送消息到 Kafka 集群。
2. 发送消息:生产者将消息添加到事务中,但并不会立即发送到 Kafka 集群。生产者可以通过调用 KafkaProducer 的 send() 方法来添加消息到事务中。
3. 预提交:当生产者添加完所有消息后,它会调用 KafkaProducer 的 commitTransaction() 方法来预提交事务。预提交会将事务中的消息发送到 Kafka 集群的协调器节点,并等待协调器节点的响应。
4. 决策:协调器节点会对预提交的事务进行决策,决定是否允许提交该事务。如果决策结果为允许提交,则协调器节点会向生产者发送一个 commit 请求,生产者收到该请求后会将事务提交到 Kafka 集群。如果决策结果为不允许提交,则协调器节点会向生产者发送一个 abort 请求,生产者收到该请求后会回滚该事务。
5. 提交或回滚:如果生产者收到了 commit 请求,则它会将事务提交到 Kafka 集群。如果生产者收到了 abort 请求,则它会回滚该事务。
6. 关闭事务:事务提交或回滚后,生产者会调用 KafkaProducer 的 endTransaction() 方法来关闭事务。
阅读全文