在 kafka 写入失败时中止 mongo 事务

Abort mongo transaction on kafka write failure

我有一个示例 Spring 引导应用程序使用 Spring 的 MongoRepository 将文档保存到 MongoDB。之后,我向 Kafka 主题写了一条消息。

我想要的是在Kafka写失败的时候回滚MongoDB事务

除了 XA 交易,我还有其他选择吗?

Kafka 不支持 XA 事务。

您可以将 ChainedKafkaTransactionManager 与 mongo tm 和 KafkaTransactionManager(按此顺序)一起使用;如果 Kafka 事务提交失败,mongo 事务将回滚。

参见Transactions and the Chained Transaction Manager