微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更新更改日志时,Faust 如何增加 Rocksdb 中的偏移量? 我很好奇当我们使用 RocksDB 作为状态后端时,faust 如何在内部更新变更日志

如何解决更新更改日志时,Faust 如何增加 Rocksdb 中的偏移量? 我很好奇当我们使用 RocksDB 作为状态后端时,faust 如何在内部更新变更日志

我很好奇当我们使用 RocksDB 作为状态后端时,faust 如何在内部更新变更日志。

据我所知,我们将在表更新期间有下一个行为:

使用 _on_changelog_sent 回调将新的变更日志发送到 kafka 变更日志主题(来自关于此回调的文档:这是在 RocksDB 中保持偏移量的原因,以便在启动时我们知道哪些偏移量我们已经有了数据数据库)

但最重要的问题:在kafka日志中成功存储changelog消息后会调用这个回调吗?或者我们可以有这样的情况,当我们向 kafka 发送更改日志消息时,通过回调更新 Rocksdb 中的偏移量,但最终发送到 kafka 会失败? (因为一些 kafka 集群问题)

在这种情况下,rocksdb 中 changelog topic 的最后一个偏移量和 kafka 中的 real highwater 偏移量不一致。

如果 Faust 现在尝试重新启动,那么我们就会因为这种不一致而失败。

我问这个是因为我在生产中遇到这样一个问题,当rocksdb中的偏移量大于kafka变更日志主题中的最后一条消息偏移量时。

我相信 kafka 生产者应该等待确认更改日志事件已保存到 kafka 日志,然后才运行回调以更新 Rocksdb。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。