内存存储中 Kafka 流的大小



我正在对 Kafka 主题流进行聚合并保存到内存状态存储中。我想知道内存中累积数据的确切大小,这有可能找到吗?

我查看了 jconsole 和 Confluent 控制中心上的 jmx 指标,但似乎没有任何相关内容,请问我可以使用什么来找出这一点吗?

您可以通过KeyValueStore#approximateNumEntries()获取内存中存储的键值对的数量(对于默认的内存中存储实现,此数字实际上是准确的(。如果您可以估计每个键值对的字节大小,则可以进行数学运算。

但是,在Java中,估计对象的字节大小通常很难做到。问题是,Java不提供任何方法来接收对象的实际大小。此外,对象可以嵌套,使其更加困难。最后,除了实际数据之外,每个对象总是有一些元数据开销,并且此开销取决于 JVM 实现。

最新更新