首页 > 其他分享 >【Kafka(二)】日志及索引文件

【Kafka(二)】日志及索引文件

时间:2022-11-11 14:39:00浏览次数:49  
标签:文件 偏移量 Kafka 二分法 索引 查找 日志


每一个分区一个文件夹,一个分区对应多个文件。当满足一定条件后,会生成新的文件。每一个文件叫做一个日志段,每一个日志段会关联两个索引文件,一个是偏移量索引另一个是时间戳索引。日志段以本日志内的第一条消息的偏移量命名。段内的日志偏移量是相对偏移量。

一个分区只有最新的日志段是可写的,其余的都是只读。

【Kafka(二)】日志及索引文件_二分法查找

 

索引文件:并非每一条消息都对应一个索引项,而是积累到一定数量后,插入一条索引项。

1.偏移量:按照偏移量排序,存放的是偏移量到物理位置,查找时二分法查找。

2.时间偏移量:按照时间戳排序,查找时二分法查找。当然还需要再通过偏移量索引查找一次。

 

日志段分割的时机

1.日志文件大小;

2.日志文件最大最小时间戳大于一个阈值;

3.日志文件最大最小偏移量大于一个阈值;

4.索引文件大小大于一个阈值;

 

偏移量索引

【Kafka(二)】日志及索引文件_二分法查找_02

来一个示意图:

【Kafka(二)】日志及索引文件_时间戳_03

具体如何查找?使用二分法查找index文件,定位到position,再从position开始的batch里顺序查找。

当然这里是已知索引文件的情况下的过程,那么如何定位到索引文件?kafka在内存中使用跳表结构存储所有的索引文件名(理论上二分也行)。

 

时间戳索引

【Kafka(二)】日志及索引文件_二分法查找_04

时间戳索引没有存物理位置而是存了偏移量,所以定位消息时,还得再查询一次偏移量索引。

【Kafka(二)】日志及索引文件_二分法查找_05


标签:文件,偏移量,Kafka,二分法,索引,查找,日志
From: https://blog.51cto.com/u_15873544/5844832

相关文章

  • 踩坑 MySQL 索引,看看你真的会用吗?
    关于MySQL索引,对于研发同学,尤其是后端研发同学,一定不会陌生。我们工作中经常会用到MySQL数据库,就肯定会经常用到性能优化方面的设计和考量,常常用涉及到MySQL索引。但......
  • 《面试官:谈谈你对索引的认知》系列之B+树
    写在前面前面一讲我们介绍了B-树的特性,以及与平衡二叉树的对比得出B-树这类数据结构的优势。​​《面试官:谈谈你对索引的认知》系列之B-树​​那B+树作为B树的一个升级版,那......
  • 【mysql】索引
    mysql的索引是由引擎决定的。1.哈希索引,这个和哈希表是一样的原理,从关键字的哈希函数值映射到物理位置。特点是只能针对等于的查询,效率很高。2.B树索引,为关键字维护一棵b树,......
  • MapReduce实战之日志清洗案例
    简单解析版1)需求:去除日志中字段长度小于等于11的日志。2)输入数据   数据有点大3)实现代码:(1)编写LogMapperpackagecom.atguigu.mapreduce.weblog;importjava.io.IOExc......
  • MapReduce实战之倒排索引案例(多job串联)
    0)需求:有大量的文本(文档、网页),需要建立搜索索引输出数据:a:atguigupingpingatguigussatguigussb:atguigupingpingatguigupingpingpingpingssc:atguigussatguigup......
  • 阿里云kafka使用springboot单个项目中同时消费不同topic
    本来是个简单的问题,但是复杂了。两个topic消费方式不一样,一个使用过的是默认方式,不指定partition,另外一个,指定了特殊的partition。报错:11:10:32.888[org.springframework.......
  • .net 温故知新:【9】.NET日志记录 ILogger使用和原理
    日志日志作为我们程序记录的“黑匣子”不论什么系统都应该使用到的,比如我们经常使用的log4net就是第三方日志记录提供程序。.NET支持使用各种内置和第三方日志记录提供程......
  • MySql - 基础学习 - 索引
    CREATETABLE`app_user`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(50)DEFAULT''COMMENT'用户昵称',`email`VARCHAR(50)NOTNULLCOMME......
  • 【Azure 事件中心】使用Apache Flink 连接 Event Hubs 出错 Kafka error: No resolvab
    问题描述参考Github上EventHub的示例代码(UsingApacheFlinkwithEventHubsforApacheKafkaEcosystems : https://github.com/Azure/azure-event-hubs-for-kafka......
  • 本地启动kafka
    本文以mac演示1)首先将kafka安装包解压到本地,进入kafka目录cdcdkafka_2.13-3.2.12)启动kafka环境bin/zookeeper-server-start.shconfig/zookeeper.properti......