我正在研究Kafka事务处理的一个常见案例:
从批读取 Topic A
批处理(业务逻辑)
保存到数据库(提交整个批处理的db事务)
将批发送到 Topic B
(提交Kafka事务)
目前,我使用相同的数据库来保存业务数据 Batch ID (partition + offset)
为了一个案子,什么时候 3
成功通过,但步骤 4
由于整个应用程序崩溃而失败。这样,在可恢复的应用程序启动时,我可以验证当前批处理,该批处理已再次收到(由于步骤中缺少提交) 4
我可以直接跳到台阶上 4
.
我正在考虑使用Kafka流来解决下一个问题:
卸载主业务数据库和存储 Batch ID
在kafka流本地状态存储(rocksdb)中,由于验证请求(保证服务的幂等性)在每个批上执行
如果该批货非常多,请利用本地存储lru。
Kafka的选择是否正确?
p、 我在这里问,因为我没有找到任何来源(在Kafka文件,会议,会谈中搜索)有关当地商店机械和如何在引擎盖下工作的信息。
暂无答案!
目前还没有任何答案,快来回答吧!