带有EOS的流中拦截器中的Kafka事务



我们使用spring-kafka流来处理数据流。我们目前正在使用processing.guarantee:exactly_once配置来确保它符合数据处理的精确一次语义。

我们有一个新的要求,即通过拦截器发出一些元数据。拦截器使用kafka模板将元数据(主要是略读消息的头部数据(发布到kafka主题。

将其放在拦截器上的原因是处理流的管道,包括多个应用程序/主题,并且可以很容易地将拦截器连接到单个应用程序。

我的问题是,我的拦截器中使用的kafka模板是否需要@Transactional注释,或者它是否使用processing.gaurantee配置生成的事务语义。当主要流消费者/生产者未能提交时,它是否能够回滚数据而不提交?

任何对此的建议都将不胜感激。

KafkaTemplate不能参与流的事务。它将需要一个单独的交易,这将打破EOS。

这一次,要么所有的事情都必须用溪流来完成,要么所有事情都用春天的卡夫卡来完成。

相关内容

  • 没有找到相关文章

最新更新