问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

kafka分区、分段、稀疏索引实现高性能查询

发布网友 发布时间:2023-04-13 00:59

我来回答

1个回答

热心网友 时间:2023-10-08 17:38

我们以几张图来总结一下Message是如何在Kafka中存储的,以及如何查找指定offset的Message的。

Message是按照topic来组织,每个topic可以分成多个的partition,比如:有5个partition的名为为page_visits的topic的目录结构为:

partition是分段的,每个段叫LogSegment,包括了一个数据文件和一个索引文件,下图是某个partition目录下的文件:

可以看到,这个partition有4个LogSegment。

比如:要查找绝对offset为7的Message:

1. 首先是用二分查找确定它是在哪个LogSegment中,自然是在第一个Segment中。

2. 打开这个Segment的index文件,也是用二分查找找到offset小于或者等于指定offset的索引条目中最大的那个offset。自然offset为6的那个索引是我们要找的,通过索引文件我们知道offset为6的Message在数据文件中的位置为9807。

3. 打开数据文件,从位置为9807的那个地方开始顺序扫描直到找到offset为7的那条Message。

这套机制是建立在offset是有序的。索引文件被映射到内存中,所以查找的速度还是很快的。

一句话,Kafka的Message存储采用了分区(partition),分段(LogSegment)和稀疏索引这几个手段来达到了高效性。

其中kafka的log.dirs目录中replication-offset-checkpoint文件记录了所有topic的offset,从零开始

在broker的log存储文件下,除了存储这各个topic的文件夹,还存在这几个checkpoint文件。分别是

recovery-point-offset-checkpoint 负责记录topic已经被写入磁盘的offset

replication-offset-checkpoint 负责记录已经被复制到别的topic上的文件

__consumer_offsets存储各个topic的offset。但是,他的只有一份。

logStartOffset 日志段集合中第一个日志段(segment)的基础位移,也就是这个日志对象的基础位移

LogEndOffset 下一条将要被加入到日志的消息的位移
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 聊聊Kafka:Kafka 如何保证一致性 成功的广告语推荐? 国家正规化妆品检测机构。国妆特字G20192103是丰胸产品吗?有功效吗? 高中语文考试答题技巧及方法总结 合川爱心黄桷树公益组织联系方式 怎么捐款给桂林市福利院 充电宝有味道,放水里泡没关系吧 梦见我全家通过地道逃过一劫 梦见躲进地道里的预兆 梦见躲进地道 梦见和很多人一起在地下避难的预兆 梦见在地道里避难是什么预兆 梦见在地道里避难 梦见挖地道避难 小腿肚子痛是怎么回事,应该怎么办 男朋友说想Kk是什么意思? 上银kk模组型号含义 kk模组和电缸推力哪个大? mkk模组和kk模组有什么区别 东莞公积金政策百分之多少 东莞住房公积金提取比例是怎样的 flink kafka 如何实现 exactly-once语义 有哪些辅助注册的平台 在宿舍里用床帘有什么好处吗? s1=1s不对 三星S6手机 浏览器每次打开都是上次关闭的网页 太极怎么下载模块 怎么在叮叮打字打出来一个皮卡丘 皮卡丘用日语键盘怎么打字 miniso苹果充电头怎么样 土建资料员要准备哪些材料? 万州欢乐谷大世界在哪里 开平市原大世界在哪里? 滨州师范学院是几本 山东滨州理工大学是一本吗 《金刚:骷髅岛》高清资源谁有,求分享 我想和你唱第四季哪里合唱的歌曲 梦见了家里有小偷的预兆 梦见家中有小偷 2022年10月30日适合种花草吗 2022年10月30日是种花草吉日吗 pdf删除空白页