|
该版本仍在开发中,尚未被视为稳定。对于最新稳定版本,请使用 Spring for Apache Kafka 4.0.0! |
恰好一次语义
你可以为听众容器提供KafkaAwareTransactionManager实例。
配置完成后,容器会在调用监听器之前先发起交易。
任何卡夫卡模板监听者执行的作参与事务。
如果监听者成功处理该记录(或使用多条记录,使用批处理消息监听器),容器通过以下方式将偏移量发送给交易producer.sendOffsetsToTransaction()),在事务管理器提交事务之前。
如果监听者抛出异常,交易会被回滚,消费者会重新定位,以便在下一次轮询时检索回滚记录。
有关更多信息及如何处理反复失败的记录,请参见后回滚处理器。
使用事务支持恰好一次语义(EOS)。
这意味着,对于读取→进程→写序列,保证该序列恰好完成一次。
(读取和过程至少有一次语义。)
Apache Kafka 3.0及以后版本的Spring只支持。EOSMode.V2:
-
V2- 又名获取-偏移-请求围栏(自2.5版本起)
| 这要求经纪人必须是2.5版或更高版本。 |
与模式V2,不必为每个 都配备生产者group.id/topic/partition因为消费者元数据会连同抵消量一起发送到交易中,经纪人可以利用这些信息判断生产者是否被围栏。
更多信息请参阅KIP-447。
V2之前是试用版;这EOSMode已修改框架以与KIP-732保持一致。