【问题标题】:Kafka Transactions in Interceptors in streams with EOS带有 EOS 的流中的拦截器中的 Kafka 事务
【发布时间】:2021-06-23 16:47:02
【问题描述】:

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

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

在拦截器上安装它的原因是处理流的管道,包括多个应用程序/主题,并且很容易将拦截器连接到各个应用程序。

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

高度赞赏任何指向此的指针。

【问题讨论】:

    标签: apache-kafka-streams spring-kafka


    【解决方案1】:

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

    只有一次,要么一切都必须用流来完成,要么一切都必须用 spring-kafka 来完成。

    【讨论】:

      猜你喜欢
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多