我正在尝试配置拓扑以更改保存状态存储的默认目录。
我从文件上读到了财产 state.dir
是我需要改变的。
默认值为 /tmp/kafka-streams
我想把它改成 /opt/kafka-streams
因为在我们的生产系统中 /tmp
目录被周期性地清理。
我的应用程序只有一个拓扑,我已经设置了属性 state.dir
有价值 /opt/kafka-streams
.
在日志中,我首先看到了以下内容,这证实了 /opt/kafka-streams
正在使用:
| loglevel="INFO" | thread="main" | logger="org.apache.kafka.streams.StreamsConfig " StreamsConfig values:
application.id = my-application
application.server =
bootstrap.servers = [192.168.92.118:9092]
buffered.records.per.partition = 1000
cache.max.bytes.buffering = 10485760
client.id = my-application-client
commit.interval.ms = 30000
connections.max.idle.ms = 540000
...
...
...
state.dir = /opt/kafka-streams
但是。。。在上面的日志之后不久,下面打印的另一行日志显示 /tmp/kafka-streams
仍在某处使用:
| loglevel="INFO" | thread="main" | logger="org.apache.kafka.streams.StreamsConfig " StreamsConfig values:
application.id = my-application
application.server =
bootstrap.servers = [192.168.92.118:9092]
buffered.records.per.partition = 1000
cache.max.bytes.buffering = 10485760
client.id = my-application-client-StreamThread-1-consumer
...
...
...
state.dir = /tmp/kafka-streams
我的应用程序只有一个拓扑。它正在使用处理器api。一个处理器正在状态存储中添加内容。然后是一个标点符号,它定期从状态存储读取并输出关于输出主题的消息。
在构建拓扑时,我使用 application.id=my-application
以及 client.id=my-application-client
. 但是在上面的第二行,我明白了 client.id=my-application-client-StreamThread-1-consumer
这就是 state.dir=/tmp/kafka-streams
.
有没有其他地方需要配置 state.dir
在构建拓扑时?
暂无答案!
目前还没有任何答案,快来回答吧!