Apache Kafka - KStream 和 KTable 硬盘 space 要求

Apache Kafka - KStream and KTable hard disk space requirements

我正在尝试更好地了解在创建 KStream 和 KTable 时资源级别发生了什么。下面,我将根据我的理解提出一些结论(欢迎指正)。

首先,每个主题都有多个分区,这些分区中的所有消息都按连续顺序存储在硬盘中。

KStream 不需要将从主题读取的消息再次存储到另一个位置,因为偏移量足以从连接到的主题中检索这些消息。 (这是正确的吗?)

关于KTable的问题。据我了解,与 KStream 相比,KTable 使用相同的密钥更新每条消息。为此,您必须在外部存储从主题到达的消息到静态 table,或者读取所有消息队列,每次新消息到达时。后者在时间性能方面似乎不是很有效。我提出的第一种方法是否正确?

read all the message queue, each time a new message arrives.

所有消息仅在应用程序重新启动时读取。一旦应用程序读取到最新的偏移量,它就会像任何其他消费者

一样更新 table

如何确定磁盘使用情况最终取决于您为应用程序配置的状态存储及其自身设置。例如,内存中与 rocksdb 与您自己编写的外部状态存储接口