Kafka Streams使用的RocksDB fileanme含义

时间:2019-06-14 11:11:10

标签: apache-kafka-streams

/tmp/streams-my-application-id下 我找到了RocksDB使用的文件。我的目的是通过du -h检查文件大小。

看到文件名时,我很好奇文件名的含义。文件名是什么意思?我想它与Kafka Streams任务和分区有关。

前缀0和1是否表示使用的主题数,而后面使用的是分区?

此KafkaStreams应用程序仅使用KStream-KTable联接了两个主题,一个主题是重新分区并缩减为KTable。

8,0K    ./0_2
8,0K    ./0_1
3,1M    ./1_2/rocksdb/KSTREAM-REDUCE-STATE-STORE-0000000002
3,1M    ./1_2/rocksdb
3,1M    ./1_2
3,0M    ./1_0/rocksdb/KSTREAM-REDUCE-STATE-STORE-0000000002
3,0M    ./1_0/rocksdb
3,1M    ./1_0
3,0M    ./1_1/rocksdb/KSTREAM-REDUCE-STATE-STORE-0000000002
3,0M    ./1_1/rocksdb
3,0M    ./1_1
8,0K    ./0_0

1 个答案:

答案 0 :(得分:2)

文件名是使用子拓扑和分区号派生的。

通常,KStream应用程序被划分为若干子拓扑(即子拓扑0、1、2等)。在使用状态转换时,状态存储目录使用 参考以生成如下所示的目录和文件名:

<sub-topology-number>_<partition_number>

所以第一个数字代表子拓扑,第二个数字代表分区号

8,0K    ./0_2    //directory
8,0K    ./0_1    // diretory
3,1M    ./1_2/rocksdb/KSTREAM-REDUCE-STATE-STORE-0000000002      

KSTREAM-REDUCE-STATE-STORE-0000000002的格式是

<Processor Node Type>-<Processor Node number>