voipp Asked: 2024-08-20 19:27:07 +0800 CST2024-08-20 19:27:07 +0800 CST 2024-08-20 19:27:07 +0800 CST 为什么kafka要将partition拆分成segment? 772 我清楚地了解将分区拆分为段的算法以及保留和清理策略。但仍然不清楚为什么 kafka 不在每个分区的一个文件中进行写入\读取? apache-kafka 1 个回答 Voted Best Answer OneCricketeer 2024-08-20T21:30:17+08:002024-08-20T21:30:17+08:00 Kafka 确实会为每个分区写入一个文件。这是头部段。其余段是不可变的(忽略压缩)。 如果每个分区都使用一个文件进行读取,则查找每个文件中的单个偏移量将需要很长时间。段包括偏移量和时间戳标记,可加快查找速度。 如果写入从未关闭段,则永远不会有任何关闭的文件句柄用于通过保留删除段,因此最终会耗尽磁盘空间。
Kafka 确实会为每个分区写入一个文件。这是头部段。其余段是不可变的(忽略压缩)。
如果每个分区都使用一个文件进行读取,则查找每个文件中的单个偏移量将需要很长时间。段包括偏移量和时间戳标记,可加快查找速度。
如果写入从未关闭段,则永远不会有任何关闭的文件句柄用于通过保留删除段,因此最终会耗尽磁盘空间。