首页 > 其他 > 详细

kafka工作流程及文件存储

时间:2020-03-01 21:50:24      阅读:67      评论:0      收藏:0      [点我收藏+]

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的物理偏移地址。

kafka工作流程及文件存储

原文:https://www.cnblogs.com/mayuan01/p/12391744.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!