Apache kafka 为什么kafka streams state dir位于/tmp/kafka streams中?
我不确定它是否已经被回答了。因为我没有得到正确的解释,所以把我的问题贴在这里 为什么kafka streamsApache kafka 为什么kafka streams state dir位于/tmp/kafka streams中?,apache-kafka,apache-kafka-streams,rocksdb,Apache Kafka,Apache Kafka Streams,Rocksdb,我不确定它是否已经被回答了。因为我没有得到正确的解释,所以把我的问题贴在这里 为什么kafka streamsstate.dir存储在/tmp/kafka streams下 我知道我可以通过在下面的流代码中提供state dir config来更改路径 StreamsConfig.STATE\u DIR\u CONFIG,“/var/abc Streams” 但是更改目录会有什么影响吗 或 我可以在应用程序目录而不是/tmp中配置状态数据库吗 根据合流文件,对于: Stateful操作: 在调用
state.dir
存储在/tmp/kafka streams
下
我知道我可以通过在下面的流代码中提供state dir config来更改路径
StreamsConfig.STATE\u DIR\u CONFIG,“/var/abc Streams”
但是更改目录会有什么影响吗
或
我可以在应用程序目录而不是/tmp
中配置状态数据库吗
根据合流文件,对于:
Stateful
操作:
在调用count()或aggregate()等有状态运算符时,或在打开流窗口时,自动创建和管理此类状态存储
但没有具体说明它的存储位置
有什么想法吗
为什么kafka streams state.dir存储在/tmp/kafka streams下
有几个原因
/tmp
目录具有默认的写入权限。因此,作为初学者,您不必为写权限而烦恼/tmp
目录是短期目录。每次系统重新启动时,它都会被清理,因此,如果忘记删除state.dir
,您不会遇到磁盘存储过量的情况。缺点是,您会丢失上一次运行的状态,因此需要从头开始重建状态李>
如果要重用存储在state.dir
中的状态,应将其存储在/tmp
之外的其他位置
所有状态存储都存储在
state.dir
中指定的位置。如果未指定,则为/tmp/kafka streams/
目录。@cricket\u 007:对更改状态存储目录的后果有何看法?就我而言,就在今天,我改变了它,奇怪的是,所有的消息都顺流而下!例如,从主题A->aggregate(..)->到主题B,所有事件都会再次生成到主题B,但不会从主题A重新消费。