Kafka-分区日志文件的索引
消费者可以从kafka的任意可用偏移量位置开始读取消息。假设消费者要读取从偏移量100开始的1MB消息,那么broker必须立即定位到偏移量100(可能是在分区的任意一个片段里),然后开始从这个位置读取消息。为了帮助broker更快地定位到指定的偏移量,kafka为每个分区维护了一个索引。索引把偏移量映射到片段文件和偏移量在文件里的位置。
索引也被分成片段,所以在删除消息时,也可以删除相应的索引。kafka不维护索引的校验和。如果索引出现损坏,kafka会通过重新读取消息并卢植偏移量和位置来重新生成索引。如果有必要,可以删除索引,这样做是绝对安全的,kafka会自动重新生成这些索引。