KafkaStreams在读取主题时写入磁盘

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KafkaStreams在读取主题时写入磁盘相关的知识,希望对你有一定的参考价值。

我一直在研究Kafka Streams应用程序上的磁盘写入,我将拓扑结构减少到最低限度,即:

KStream<String, JsonElement> stream = builder.stream("input-topic");

然而在docker stats上,我可以看到我的应用程序一直在向磁盘写入内容。我检查了容器,我看不到任何可疑的文件句柄。

如果我评论上述行,这个问题就会消失,所以我得出的结论是,从一个主题中读取内容会在磁盘上写一些内容,但我不知道是什么以及为什么。

另外,我注意到它与提交间隔设置严格相关;增加它会使写入频率降低。每次写入大约130kB的数据。

这是预期的行为吗?

答案

Kafka Streams将检查点文件写入本地磁盘。这些检查点文件实际上只用于有状态任务,但即使没有有状态操作也会创建(对于这种情况,检查点文件几乎为空)。

这是一个已知的问题,并在即将发布的1.1版本中修复:https://issues.apache.org/jira/browse/KAFKA-6499

以上是关于KafkaStreams在读取主题时写入磁盘的主要内容,如果未能解决你的问题,请参考以下文章

System.AccessViolationException”类型的未经处理的异常在 System.Data.dll 中发生。其它信息:尝试读取或写入受保护的内存。这通常指示其它内存已损坏。(代码片

Kafka Streams 在 HDFS 上查找数据

如何在 KafkaStreams api 中添加主题的健康检查

在磁盘上读取/写入文件时如何限制硬盘 I/O?

在磁盘读取或写入时ntoskrnl占用cpu,请问如何解决啊,谢谢

合并多个相同的 Kafka Streams 主题