互联网上有很多关于Kafka流使用的文章,但几乎没有关于它是如何在内部完成的。它是否使用了标准集之外的Kafka内部的任何特性(我们称之为“标准”librdkafka实现)?如果它将状态保存在rocksdb(或任何自定义statestore)中,它如何保证状态保存和提交在一个事务中?当状态保存在压缩日志中时(提交和更新的日志应该在一个事务中)也会遇到同样的问题。谢谢您。
ljsrvy3e1#
我在这里结合了几个线索的信息找到了答案。它使用事务(参见https://stackoverflow.com/a/54593467/414016)但利伯Kafka并不支持。它实际上并不依赖rocksdb,而是将状态更改保存到提交日志中(参见https://stackoverflow.com/a/50264900/414016).它使用上面提到的事务来完成。
1条答案
按热度按时间ljsrvy3e1#
我在这里结合了几个线索的信息找到了答案。
它使用事务(参见https://stackoverflow.com/a/54593467/414016)但利伯Kafka并不支持。
它实际上并不依赖rocksdb,而是将状态更改保存到提交日志中(参见https://stackoverflow.com/a/50264900/414016).
它使用上面提到的事务来完成。