zoukankan      html  css  js  c++  java
  • kafka工作流程及文件存储

    kafka工作流程

      

        kafka中消息以topic进行分类,生产者生产消息,消费者消费消息,都是面向topic的。

        topic是逻辑上的概念,而partition是物理上的概念,每个partition对应一个log文件,该log文件中存储的就是producer生产的数据,producer生产的数据会被不断的追加到该文件末端,且每条数据都有自己的offset,消费者组中的每个消费者,都会实时记录自己消费到哪个offset,以便出错恢复时从上次的位置上继续消费。

        producer发送数据和消费者消费数据的对象都是partition中的leader,其他follower会实时从leader中同步数据,和leader中的数据保持一致。

    kafka文件存储机制

      

        每个topic可以分为多个partition;

        kafka采取了分片和索引机制,将每个partition分为多个segment;

        每个partition可以分为多个segment;

        每个segment大小是相同的,且对应.log和.index文件;

        .log和.index文件成对存在,.log文件记录的是producer生产者生产的数据,.index文件记录的是.log文件中每条数据的物理偏移量;

        每个partition的数据都位于同一个目录下,并且以“topic名称+partition序号”的格式;

        partition数据的全局存放路径可以在kafka下bin/conf/server.properties中配置

          

    index文件和log文件

         

           log文件默认存储七天,默认大小为1G,当大于1G时,会重新创建一个新的.log文件

      

        

        index文件和log文件都以该segment的第一个消息的offset命名。数值最大为64位long大小,19位数据字符长度,没有数字用0填充。

        index文件存储大量的索引信息,log文件存储大量的数据,索引文件中的元数据指向对应数据文件中的message的物理偏移地址。

        

  • 相关阅读:
    linux笔记八---------文件查找
    linux笔记七---------管道
    linux笔记六-------文件权限设置
    linux笔记五-------编辑器
    linux笔记四-------用户和组的管理
    linux笔记三-------根目录相关说明
    linux笔记二-----目录及文件命令
    linux笔记一
    thinkphp框架验证码验证一次
    MarkDown 中使用 LaTeX 数学式
  • 原文地址:https://www.cnblogs.com/wnwn/p/12332252.html
Copyright © 2011-2022 走看看