在kubernetes容器中,我已经为我的kafka流应用程序配置了rocksdb
containers:
...
volumeMounts:
- mountPath: /tmp/state
name: state-volume
volumes:
- name: state-volume
emptyDir:
medium: Memory
部署后,如果我转到位置cd /tmp/state/my-service
我看到了十几个文件夹。例如。 0_105、0_107、0_9 等。如果我转到这些文件夹之一,例如cd /tmp/state/my-service/0_105/rocksdb/state
我看到了实际的.sst文件。
在每个 0 _ *文件夹中,都有多个sst文件,这就是rocksdb如何分割我想的文件密钥。但是这些 0 _ * 文件夹会做什么,以及它们如何按原样拆分?
答案 0 :(得分:1)
Kafka Streams根据您的程序结构和输入主题分区的数量创建“任务”。您看到的目录是任务目录,允许每个任务以隔离的方式在本地存储其状态。
每个任务都有一个任务ID Y_Z
,用作任务目录名称。第一个数字是子目录ID,第二个数字基本上是输入的分区号。
您可以通过Topology#describe()
描述拓扑来查看生成了哪些子拓扑(如果需要,您可以调用print'TopologyDescription'到stdout)。