繁体   English   中英

为什么Kafka Streams状态目录位于/ tmp / kafka-streams中?

[英]Why kafka streams state dir is in /tmp/kafka-streams?

我不确定是否已经回答。 由于我没有得到适当的解释,请在此处发布我的问题。

为什么kafka流state.dir存储在/tmp/kafka-streams

我知道我可以通过在流代码中提供state dir config来更改路径,如下所示

StreamsConfig.STATE_DIR_CONFIG,"/var/abc-Streams"

但是更改目录会有什么影响吗?

要么

我可以在应用程序目录而不是/tmp配置状态数据库吗?

根据相关文档,用于: Stateful操作:

automatically creates and manages such state stores when you are calling stateful operators such as count() or aggregate(), or when you are windowing a stream

但没有指定确切的存储位置。

有什么想法吗?

为什么kafka流state.dir存储在/ tmp / kafka-streams下?

有几个原因。

  1. 通常, /tmp目录具有默认的写许可权。 因此,作为初学者,您不必为写权限而苦恼。
  2. /tmp目录是短期目录。 每次系统重新引导时,它都会被清除,因此,如果您忘记删除state.dir ,则不会遇到磁盘空间过大的情况。 不利的一面是,您会丢失上一次运行的状态,因此需要从头开始重建状态。

如果要重用state.dir存储的状态,则应将其存储在/tmp之外的其他位置。

所有状态存储区都存储在state.dir指定的位置。 如果未指定,则为/tmp/kafka-streams/<app-id>目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM