当前位置: 首页 > 知识库问答 >
问题:

Kafka Streams使用的RocksDB fileanme含义

罗渝
2023-03-14

/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个答案

马泓
2023-03-14

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

通常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>
 类似资料:
  • 我正在研究一个解决方案,我必须将Kafka两个主题t1和t2的数据结合起来 t1将包含消息的前半部分,t2将包含消息的后半部分 例如,如果完整消息是“a1b1c1d1”和“a2b2c2d2”,那么 t1将有“a1b1”和“a2b2” t2将有“c1d1”和“c2d2” 并且我必须对它们执行并集以生成“a1b1c1d1”和“a2b2c2d2” ,因为消息不会按顺序存储在KStream store中,

  • 我有四个Kafka流应用程序实例使用相同的应用程序id运行。所有输入主题都属于一个分区。为了实现可伸缩性,我通过一个具有多个分区的中间虚拟主题来传递它。我已经将< code>request.timeout.ms设置为4分钟。 Kafka 实例进入 ERROR 状态,而不会引发任何异常。很难弄清楚确切的问题是什么。有什么想法吗?

  • 我有一个来自Kafka主题的大型json,我正在将其转换为Java对象,以提取find DB中所需的值。一些记录中会有一系列缺陷,我需要捕获这些缺陷并将其发送到不同的主题,这样它们就可以在数据库中自己的表中结束。使用接收器连接器将值插入数据库,这就是为什么我们使用多个主题。 我发现了分支和拆分,但这似乎更适合于确定一条已消费的记录应该转到哪个主题,而不是将记录的不同部分发送到不同的主题。有没有办法

  • 我正在使用Kafka流从主题获取数据,现在我想将这些数据加载到Postgres。可能吗?

  • 我正在使用Apache Kafka 0.8.2.1,计划升级应用程序以使用Apache Kafka 1.0.0。当我考察Kafka流的时候,我得到了一些关于Kafka流和Kafka流的区别的问题。 我知道KafkaConsumer基本上用于字面上,从broker和KafkaStreams可以做各种事情,如或与数据库交互,甚至重新生成到其他kafka或任何其他系统。 所以,这是我的问题。KafkaC

  • 假设我们有一个KafkaStreams应用程序,它正在从customerA的两个源主题读取数据。订单和客户B。命令。每个主题有3个分区。 当我运行这个应用程序时,会创建6个任务(因为每个主题有3个分区):当前活动任务:[0_0,0_1,1_0,0_2,1_1,1_2] 由于两个主题名称都以". order"结尾,我可以使用regex从源主题读取数据,如下所示 但当我使用正则表达式运行这个应用程序时