kafka入门(六):日志分段(LogSegment)

日志分段(LogSegment)

Kafka的一个 主题可以分为多个分区。
一个分区可以有一至多个副本,每个副本对应一个日志文件。
每个日志文件对应一个至多个日志分段(LogSegment)。
每个日志分段还可以细分为索引文件、日志存储文件和快照文件。

每个 LogSegment 对应于磁盘上的一个日志文件和两个索引文件,以及其他可能的文件(比如以 .txnindex 为后缀的事务索引文件)。索引文件包括:偏移量索引文件(以 .index 为文件后缀) 和 时间戳索引文件 (以 .timeindex 为文件后缀),

每个 LogSegment 都有一个 基准偏移量 baseOffset, 用来表示当前 LogSegment 中第一条消息的 offset, 用来表示当前 LogSegment 中第一条消息的 offset。

在这里插入图片描述

日志分段(LogSegment)的索引文件:

偏移量索引文件,用来建立消息偏移量( offset ) 到物理地址之间的映射关系,方便快速定位消息所在的物理文件位置 。

时间戳索引文件,则根据指定的时间戳 ( timestamp) 来查找对应的偏移量信息。

Kafka中 的索引文件以稀疏索引的方式构造消息的索引,它并不保证每个消息在索引文件中都有对应的索引项。

偏移量索引文件

偏移量索引项,每个索引项占用 8个字节,分为两个部分。

(1) relativeOffset: 相对偏移量,表示消息相对于 baseOffset 的偏移量,占用 4个字节。当前索引文件的文件名即为 baseOffset 的值。

(2) position: 物理地址,也就是消息在日志分段文件中对应的物理位置 ,占用 4个字节。

时间戳索引文件

时间戳索引项,每个索引项占用 12 个字段,分为两个部分。

(1) timestamp: 当前日志分段的最大时间戳。

(2) relativeOffset: 时间戳所对应的消息的相对偏移量。

时间戳索引文件中包含若干个时间戳索引项,每个追加的时间戳索引项中的 timestamp 必须大于之前追加的索引项的 timestamp。

资料来源

《深入理解Kafka:核心设计与实践原理》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

选择交换.

给出长为 n 的序列 a,你可以对序列 a 进行以下操作: 选择 l,r (1 ≤ l,r ≤ n) ,交换 a[l],a[r]. 请求出在任意多次操作后,序列 a 能否满足 a[1]a[n] a[2]a[n-1] a[3]a[n-2] ……a[n/2]a[n1-(n/2)]. 可以证明如果有解,操作次数…

【Mybatis系列】Mybatis空值关联

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Linux 内核学习 2 - 用户程序如何被塞进内核进行调度?

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。 fork里copy了父进程的信息,并激活task放到运行队列,当系统发生调度并获得执行机会时开始执行,但这时还不是hello程序…

C++力扣题目700--二叉搜索树中的搜索

给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。 示例 1: 输入:root [4,2,7,1,3], val 2 输出:[2,1,…

网络安全全栈培训笔记(52-WEB攻防-通用漏洞弱口令安全社工字典生成服务协议web应用)

第52天 WEB攻防-通用漏洞&弱口令安全&社工字典生成&服务协议&web应用 知识点: 1、弱口令安全&配置&初始化等 2、弱口令对象&Web&服务&应用等 3、弱口令字典&查询&列表&列表等 #前置知识: 弱口令(weak…

getWriter() has already been called for this response

这个错误通常表明您尝试从Spring MVC返回一个已使用的HttpServletResponse对象。 原因:这可能是由于直接调用HttpServletResponse的getWriter()或getOutputStream()方法,或者由于在控制器方法中抛出异常而自动调用HttpServletResponse的write()方法。 修…

python企业级技能

python企业级技能 @contact: 微信 1257309054 @file: 书籍 @time: 2024/1/13 11:16 @author: LDC内容简介 ​ 通过本书籍可以学习到python在企业中是如何使用的,用来解决哪些业务问题? ​ python

C#人力资源管理系统源码

C#人力资源管理系统源码 源码描述: 该系统利用asp.net中mvc,linq搭建开发, 分权限管理 权限级别分为:管理员,经理,专员,员工等 管理员可以管理角色、菜单 经理可以管理 组织规划,员工管理&#…

python,序列的切片

序列的切片就是指从一个序列中取出子序列 语法: 序列[起始下标:结束下标:步长] 步长为1表示一个一个的取元素,步长为2表示每次跳过一个元素的取元素,步长为负数表示反向切片,取元素时取到结束下标&#…

分裂联邦学习论文-混合联邦分裂学习GAN驱动的预测性多目标优化

论文标题:《Predictive GAN-Powered Multi-Objective Optimization for Hybrid Federated Split Learning》 期刊:IEEE Transactions on Communications, 2023 一、论文介绍 背景:联邦学习作为一种多设备协同训练的边缘智能算法&#xff0…

linux 安装sipp

sudo apt-get install libnet1-dev libpcap0.8-dev openssl libssl-dev 从 sipp - Browse /sipp/3.2 at SourceForge.net 下载最新版的sipp.svn.tar.gz,解压之后就得到一个rpm文件 tar -zxvf sipp.svn.tar.gz cd sipp make pcapplay_ossl

SpringBoot中 如何优雅的 重试调用 第三方API?

引言 在实际的应用中,我们经常需要调用第三方API来获取数据或执行某些操作。然而,由于网络不稳定、第三方服务异常等原因,API调用可能会失败。为了提高系统的稳定性和可靠性,我们通常会考虑实现重试机制。 本文将深入探讨如何在…

MySQL深入——12

我们今天来谈谈临键锁 next-key lock(临键锁)是记录锁与间隙锁的结合,锁定一个范围。 他被主要应用于解决幻读的问题 临键锁的几个要点: 1.他是前开后闭区间 2.查找过程中访问到的对象会加锁 优化:1.在索引上的等…

2401C++,C++模板用来解耦

原文 模板还可用来解耦. 看这样一个场景: 类 连接 { 公:空 发送() {//干活输出<<缓冲_<<"\n";//...} 私:串 缓冲_; };有这样一个连接对象,它里面有个发送函数,发送的逻辑比较复杂(这里省略具体逻辑),然后刚好另外一个A对象可复用这部分代码,于是就把发送…

多语言生成式语言模型用于零样本跨语言事件论证提取(ACL2023)

1、写作动机&#xff1a; 经过预训练的生成式语言模型更好地捕捉实体之间的结构和依赖关系&#xff0c;因为模板提供了额外的声明性信息。先前工作中模板的设计是依赖于语言的&#xff0c;这使得很难将其扩展到零样本跨语言转移设置。 2、主要贡献&#xff1a; 作者提出了一…

AI-图片转换中国风动漫人物

&#x1f3e1; 个人主页&#xff1a;IT贫道-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;私聊博主加WX好友&#xff0c;获取更多资料哦~ &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. AI卡通秀原理 2. …

【PyQt小知识 - 8】:QFileDialog — 文件选择对话框(选择文件夹/文件)

文章目录 QFileDialog的介绍和使用 QFileDialog的介绍和使用 QFileDialog是Qt框架中提供的一个文件选择对话框。它可以让用户通过图形界面的方式选择文件或目录&#xff0c;并提供了许多与文件操作相关的实用功能&#xff0c;例如文件过滤、文件类型限制、文件名默认值、默认目…

17. C++ static、const 和 static const 类型成员变量声明以及初始化

1. C static、const 和 static const 类型成员变量声明以及初始化 const 定义的常量在超出其作用域之后其空间会被释放&#xff1b; static 定义的静态常量在函数执行后不会释放其存储空间&#xff1b; 1.2 static static 表示的是静态的 类的静态成员函数、静态成员变量是…

ASP.NET进销存系统源码

ASP.NET进销存系统源码 功能介绍&#xff1a; 财务 销售清单&#xff0c;填写销售单&#xff0c;客户管理&#xff0c;添加客户资料 销售 销售清单&#xff0c;填写销售单&#xff0c;客户管理&#xff0c;添加客户资料 仓库 仓库结存&#xff0c;仓库盘点&#xff0c;盘点结…

初学unity学习七天,经验收获总结

初学unity七天&#xff0c;经验收获总结 学习就是认识新观念和新想法的过程。 假如人们始终以同一种思维方式来考虑问题的话&#xff0c;那么始终只会得到同样的结果。 因为我对你讲述的许多内容是你以前从未接触过的&#xff0c;所以我建议你&#xff0c;在你还没有做之前&…