全网最详细的大数据Kafka文章系列,强烈建议收藏加关注!

新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点。

目录

系列历史文章

kafka消息存储及查询机制原理

一、Kafka数据存储机制

二、Kafka数据查询机制


系列历史文章

2021年大数据Kafka(十二):❤️Kafka配额限速机制❤️

2021年大数据Kafka(十一):❤️Kafka的消费者负载均衡机制和数据积压问题❤️

2021年大数据Kafka(十):kafka生产者数据分发策略

2021年大数据Kafka(九):kafka消息存储及查询机制原理

2021年大数据Kafka(八):Kafka如何保证数据不丢失

2021年大数据Kafka(七):Kafka的分片和副本机制

2021年大数据Kafka(六):❤️安装Kafka-Eagle❤️

2021年大数据Kafka(五):❤️Kafka的java API编写❤️

2021年大数据Kafka(四):❤️kafka的shell命令使用❤️

2021年大数据Kafka(三):❤️Kafka的集群搭建以及shell启动命令脚本编写❤️

2021年大数据Kafka(二):❤️Kafka特点总结和架构❤️

2021年大数据Kafka(一):❤️消息队列和Kafka的基本介绍❤️

​​​​​​​

kafka消息存储及查询机制原理

一、Kafka数据存储机制

        segment段中有两个核心的文件一个是log,一个是index。 当log文件等于1G时,新的会写入到下一个segment中。通过下图中的数据,可以看到一个segment段差不多会存储70万条数据。

二、Kafka数据查询机制

需求1: 读取 offset=368776 的message消息数据, 数据集如下

第一步: 确定segment段

第二步: 通过segment file 查找 message

寻找的步骤总结

  1. 确定数据所在的segment段, 所以可以推断  368776 这条数据在第二个segment段中
  2. 在这个段中, 先去查询 index文件, 从中找到 368776 消息在log文件具体的物理偏移量位置
  3. 遍历log文件, 顺序查询到具体位置, 将数据直接获取即可