KafkaStreams 在读取主题时写入磁盘
KafkaStreams writing to disk while reading from a topic
我一直在研究 Kafka Streams 应用程序上的磁盘写入,并将拓扑减少到最低限度,即:
KStream<String, JsonElement> stream = builder.stream("input-topic");
然而在 docker stats
我可以观察到我的应用程序一直在向磁盘写入内容。我检查了容器,没有看到任何可疑的文件句柄。
如果我评论上述行,这个问题就会消失,所以我得出的结论是,只是从一个主题中读取会在磁盘上写入 something,但我猜不出是什么为什么。
此外,我注意到它与提交间隔设置密切相关;增加它会使写入频率降低。每次写入大约130kB的数据。
这是预期的行为吗?
Kafka Streams 将检查点文件写入本地磁盘。这些检查点文件实际上只用于有状态任务,但即使没有有状态操作也会创建(对于这种情况,检查点文件几乎是空的)。
这是一个已知问题,已在即将发布的 1.1 版本中修复:https://issues.apache.org/jira/browse/KAFKA-6499
我一直在研究 Kafka Streams 应用程序上的磁盘写入,并将拓扑减少到最低限度,即:
KStream<String, JsonElement> stream = builder.stream("input-topic");
然而在 docker stats
我可以观察到我的应用程序一直在向磁盘写入内容。我检查了容器,没有看到任何可疑的文件句柄。
如果我评论上述行,这个问题就会消失,所以我得出的结论是,只是从一个主题中读取会在磁盘上写入 something,但我猜不出是什么为什么。
此外,我注意到它与提交间隔设置密切相关;增加它会使写入频率降低。每次写入大约130kB的数据。
这是预期的行为吗?
Kafka Streams 将检查点文件写入本地磁盘。这些检查点文件实际上只用于有状态任务,但即使没有有状态操作也会创建(对于这种情况,检查点文件几乎是空的)。
这是一个已知问题,已在即将发布的 1.1 版本中修复:https://issues.apache.org/jira/browse/KAFKA-6499