【问题标题】:Transaction with Fs2-kafka与 Fs2-kafka 的交易
【发布时间】:2022-07-08 19:18:33
【问题描述】:

我正在寻找一种使用生产者进行交易的方法,使用 fs2, 然而,当前的 TransactionalProducer 似乎是面向端到端工作流的场景,即消费-流程-生产。

但是,我们希望在我们只是向 kafka 生成消息的上下文中使用它。

有没有一种已知的方法可以使用 fs2-kafka 实现这一目标?我试图看看如何,但似乎不可能,也许我错过了什么?

编辑1

经过仔细检查,显然不支持该用例。但是我很好奇为什么?是出于特定原因,我在实施自己的解决方案时可能需要注意,还是只是因为没有特定原因而没有完成并且永远不会完成?如果有人能解释一下?

【问题讨论】:

  • 在最新的 Kafka api 中默认启用事务生产者
  • 从 Apache Kafka 3.0 开始,Producer 默认启用最强的交付保证(acks=all, enable.idempotence=true)。这意味着用户现在默认获得排序和持久性。
  • 不是交易
  • 针对该用例切换到 kafka4s

标签: scala apache-kafka fs2 kafka-transactions-api


【解决方案1】:

最终,事务生产者添加到enable.idempotence=true, acks=all 的唯一内容是消费者偏移量作为生成消息的一部分被提交。由于提交的偏移量意味着成功的生产,反之亦然,这允许消费-过程-生产流有效地处理消息一次(Confluent 可以说稍微延伸了恰好一次的术语),假设 process 步骤中的所有内容都是也是幂等的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 2010-12-05
    • 1970-01-01
    相关资源
    最近更新 更多