美文网首页人人都是产品经理
浅谈Kafka文件存储机制

浅谈Kafka文件存储机制

作者: Cristiano7_ckl | 来源:发表于2020-05-11 17:10 被阅读0次
    topic 分区文件存储位置

    kafka安装目录下有个data文件夹,我有个topic 起名叫first,并且有两个分区。图中first-0,和first-1 就是存储该topic 数据的地方,由于kafka是将数据存储在磁盘,为了提升读取效率,所以kafka也是采取了分片和索引的手段来提升数据查找读取效率

    分区文件的索引文件与数据文件

    随便cd 到某一个分区文件下,就会看到有.index和.log两个文件,顾名思义.index就是该分区下的索引文件,.log文件就是正儿八经存数据的文件了。index 和 log 文件以当前 segment(分片) 的第一条消息的 offset 命名。

    kafka partition文件示意图

    由于生产者生产的消息会不断追加到 log 文件末尾,为防止 log 文件过大导致数据定位

    效率低下,Kafka 采取了分片和索引机制,将每个 partition 分为多个 segment。每个 segment

    对应两个文件——“.index”文件和“.log”文件。这些文件位于一个文件夹下,该文件夹的命名

    规则为:topic 名称+分区序号。例如,first 这个 topic 有三个分区,则其对应的文件夹为 first0,first-1,first-2。

    index文件和log文件示意图

    “.index”文件存储大量的索引信息,“.log”文件存储大量的数据,索引文件中的元数据指向对应数据文件中 message 的物理偏移地址。“3” 代表该分区下的第3条消息,“756”代表该条消息在所有分区中的偏移量,根据“756”这个偏移量去“.log”文件中查找 offset=3的消息。

    这样说大概能理解kafka的文件存储流程了吗?

    相关文章

      网友评论

        本文标题:浅谈Kafka文件存储机制

        本文链接:https://www.haomeiwen.com/subject/zgaunhtx.html