gpt4 book ai didi

apache-kafka - Kafka Streams 中的内存与持久状态存储?

转载 作者:行者123 更新时间:2023-12-04 08:40:22 27 4
gpt4 key购买 nike

我已经阅读了状态流处理 overview如果我理解正确的话,RocksDB 被用作键值存储的默认实现的主要原因之一是一个事实,即与内存中集合不同,它可以处理大于可用内存的数据,因为它可以刷新到磁盘。这两种类型的存储都可以在应用程序重启后继续存在,因为数据是作为 Kafka 主题备份的。

但是还有其他区别吗?例如,我注意到我的持久状态存储为每个主题分区创建了一些 .log 文件,但它们都是空的。

简而言之,我想知道用内存存储替换持久存储有哪些性能优势和可能的风险。

最佳答案

我对 Kafka Streams 的内部结构和状态存储的不同用例的了解非常有限,尤其是。内存中 vs 持久化,但到目前为止我设法了解到,持久化状态存储是一种存储在磁盘上(因此名称持久化)的 StreamTask .

这并没有给出太多,因为内存中的名称与持久化的名称本身可能给出了相同的理解,但是当我了解到 Kafka Streams 尝试将分区分配给分配了分区的相同 Kafka Streams 实例时,我发现非常令人耳目一新之前(重新启动或崩溃)。

也就是说,每次重新启动时都会简单地重新创建(重放)内存中的状态存储,这在 Kafka Streams 应用程序启动并运行之前需要时间,而持久状态存储是已经在磁盘上实现的东西,并且是 Kafka Streams 实例唯一的时间重新创建状态存储要做的是从磁盘加载文件(而不是从需要更长的更改日志主题)。

我希望这会有所帮助,如果我错了(或部分正确),我很高兴得到纠正。

关于apache-kafka - Kafka Streams 中的内存与持久状态存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49180664/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com