Kafka Streams-如何在内部保存状态

时间:2019-09-16 19:00:19

标签: apache-kafka apache-kafka-streams

互联网上有很多关于Kafka Streams用法的文章,但关于如何在内部完成的事情几乎没有。

  1. 它是否在Kafka内使用标准集以外的任何功能(我们将librdkafka实现称为“标准”)?
  2. 如果将状态保存在RocksDB(或任何自定义StateStore)中,那么如何保证状态保存和提交处于一次事务中?
  3. 当状态保存在压缩日志中时(提交和更新的日志应在一个事务中)时,这是同样的问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

我通过组合来自多个线程的信息找到了答案。

  1. 它使用librdkafka https://stackoverflow.com/a/54593467/414016(至今)的事务(请参阅unsupported)。
  2. 它实际上并不依赖RocksDB,而是将状态更改保存到提交日志中(请参见https://stackoverflow.com/a/50264900/414016)。
  3. 它使用上述交易来完成。