Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 在kafka streams本地存储(rocksdb)中存储批次唯一ID_Apache Kafka_Apache Kafka Streams - Fatal编程技术网

Apache kafka 在kafka streams本地存储(rocksdb)中存储批次唯一ID

Apache kafka 在kafka streams本地存储(rocksdb)中存储批次唯一ID,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我正在研究卡夫卡事务处理的一个常见案例: 从主题A中读取批处理 批处理(业务逻辑) 保存到数据库(提交整个批处理的DB事务) 将批发送到主题B(提交卡夫卡事务) 目前,我正在使用同一个数据库来保存业务数据和批ID(分区+偏移量),以防步骤3成功通过,但步骤4由于整个应用程序崩溃而失败。这样,在可恢复的应用程序启动时,我可以验证再次收到的当前批(由于崩溃前步骤4上没有提交)已经处理,并且我可以直接跳到步骤4 我正在考虑使用卡夫卡流解决下一个问题: 卸载主业务数据库并在kafka streams l

我正在研究卡夫卡事务处理的一个常见案例:

  • 从主题A中读取批处理
  • 批处理(业务逻辑)
  • 保存到数据库(提交整个批处理的DB事务)
  • 将批发送到
    主题B
    (提交卡夫卡事务)
  • 目前,我正在使用同一个数据库来保存业务数据和批ID(分区+偏移量),以防步骤
    3
    成功通过,但步骤
    4
    由于整个应用程序崩溃而失败。这样,在可恢复的应用程序启动时,我可以验证再次收到的当前批(由于崩溃前步骤
    4
    上没有提交)已经处理,并且我可以直接跳到步骤
    4

    我正在考虑使用卡夫卡流解决下一个问题:

  • 卸载主业务数据库并在kafka streams local state store(rocksdb)中存储
    批次ID
    ,因为验证请求(保证服务的幂等性)在每个批次上执行
  • 如果批次确实过多,请利用本地存储LRU
  • 卡夫卡流在这方面是正确的选择吗


    p.s.我在这里询问,因为我没有找到任何来源(在卡夫卡文档、会议、讲座中搜索)来了解当地商店的机制以及如何在引擎盖下工作。

    引擎盖下的机制可以在yep找到,谢谢,但它非常简单,没有涵盖企业级解决方案的必要方面