您可以为侦听器容器提供实例。 这样配置后,容器会在调用侦听器之前启动事务。 侦听器执行的任何操作都参与事务。 如果侦听器成功处理了记录(或多条记录,当使用 时),则容器会在事务管理器提交事务之前使用 )将偏移量发送到事务。 如果侦听器引发异常,则会回滚事务并重新定位使用者,以便在下次轮询时可以检索回滚的记录。 有关详细信息以及如何处理反复失败的记录,请参阅回滚后处理器KafkaAwareTransactionManagerKafkaTemplateBatchMessageListenerproducer.sendOffsetsToTransaction()Spring中文文档

使用事务可启用 Exactly Once Semantics (EOS)。Spring中文文档

这意味着,对于序列,可以保证序列正好完成一次。 (读取和处理至少有一次语义)。read → process → writeSpring中文文档

Spring for Apache Kafka 版本 3.0 及更高版本仅支持:EOSMode.V2Spring中文文档

这要求代理的版本为 2.5 或更高版本。
这要求代理的版本为 2.5 或更高版本。

使用 mode 时,没有必要为每个创建者设置一个生产者,因为使用者元数据与交易的偏移量一起发送,并且代理可以使用该信息来确定生产者是否被隔离。V2group.id/topic/partitionSpring中文文档

有关详细信息,请参阅 KIP-447Spring中文文档

V2以前是 ;已更改以使框架与 KIP-732 保持一致。BETAEOSModeSpring中文文档