Kafka的文件存储机制

kafka的文件存储机制:
在这里插入图片描述
在这里插入图片描述

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

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

由于生产者生产的消息会不断追加到log文件末尾,为防止log文件过大导致数据定位效率低下,Kafka采取了分片和索引机制,将每个partition分为多个segment。每个segment对应两个文件——“.index”文件和“.log”文件。index和log文件以当前segment的第一条消息的offset命名。

某条数据的offset记录自己在A.log中位置,根据offset的值和各个segment的.index文件的命名编号比较,可以判断出该条数据在那个segment,然后查询根据offset得出偏移量,根据偏移量查询.index中记录的字节读取位置,然后去.log文件中读取对应的数据。

整个分区存储在,配置的目录–log.dirs=/opt/module/kafka_2.11-2.4.1/datas下,文件夹名字自动生成,规则为:topic名称+分区序号。例如,first这个topic有三个分区,则其对应的文件夹为first-0,first-1,first-2。

  • 32
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 75
    评论
评论 75
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值