apache-kafka - 卡夫卡生产者抛出错误尝试从状态 IN_TRANSACTION 到状态 IN_TRANSACTION 的无效转换

标签 apache-kafka transactions kafka-producer-api

我的 kafka 生产者抛出错误“尝试从状态 IN_TRANSACTION 到状态 IN_TRANSACTION 的无效转换”。这是我正在努力实现的目标 -

KafkaProducer producer = new KafkaProducer<>(props);
producer.initTransactions();
//transaction 1
producer.beginTransaction();
//send some messages
producer.commitTransaction();

//transaction 2
producer.beginTransaction(); //here it throws an exception "Invalid transition attempted from state IN_TRANSACTION to state IN_TRANSACTION".
//send some messages
producer.commitTransaction();

producer.close();
如果我打电话producer.initTransactions();在开始事务 2 之前,它再次抛出异常“尝试从状态 READY 到状态 INITIALIZING 的无效转换”。
我究竟做错了什么?

最佳答案

每次只需为每笔交易创建新的生产者。

KafkaProducer producer = new KafkaProducer<>(props);
producer.initTransactions();
//transaction 1
producer.beginTransaction();
//send some messages
producer.commitTransaction();
producer.close();

KafkaProducer producer = new KafkaProducer<>(props);
producer.initTransactions();

//transaction 2
producer.beginTransaction(); //here it throws an exception "Invalid transition attempted from state IN_TRANSACTION to state IN_TRANSACTION".
//send some messages
producer.commitTransaction();

producer.close();

关于apache-kafka - 卡夫卡生产者抛出错误尝试从状态 IN_TRANSACTION 到状态 IN_TRANSACTION 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59864552/

相关文章:

java - Kafka 错误连接到节点 ubuntukafka :9092 (id: 0 rack: null) (org. apache.kafka.clients.NetworkClient) java.net.UnknownHostException:

java - Apache Samza 不运行

apache-kafka - 在kafka中发送同步消息?

java - Kafka 附加分区键或没有键的分区器

apache-kafka - 来自kafka的元数据信息

java - Kafka Connect - 文件源连接器错误

c# - 如何使用 asp.net 将 kafka 消息保存到文件中

java - 分布式(XA)事务的性能调整-如何?

sql-server - 什么是僵尸交易?

PHP和MySQL ACID程序设计