RocksDB生成的文件夹是什么

What are the folders generated by RocksDB

在我的 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_* 文件夹有什么作用,它们是如何按原样拆分的?

Kafka Streams 根据您的程序结构和输入主题分区的数量创建 "tasks"。您看到的目录是任务目录,允许每个任务以隔离的方式在本地存储其状态。

每个任务都有一个任务 ID Y_Z,用作任务目录名称。第一个数字是子拓扑ID,第二个数字基本上是输入分区号。

您可以通过 Topology#describe() 描述您的拓扑来查看生成了哪些子拓扑(如果需要,您可以调用将 `TopologyDescription' 打印到标准输出)。