kafka文件的存储机制原理

这篇文章主要介绍“kafka文件的存储机制原理”,在日常操作中,相信很多人在kafka文件的存储机制原理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”kafka文件的存储机制原理”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

成都创新互联从2013年创立,是专业互联网技术服务公司,拥有项目成都网站建设、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元河口做网站,已为上家服务,为河口各地企业和个人服务,联系电话:18980820575

每一个topic,分为多个partition,每一个partition在文件系统当中是一个文件夹。

kafka文件的存储机制原理

而每一个partition当中,又分成了多个segment,每个segment,包括了2个文件,.index文件和.log文件,分别是消息的索引信息和消息内容。而文件的名字形如下面的格式

00000000000000000000.log

00000000000000000000.index

0000000000000999.log

0000000000000999.index

文件名的就是消息在本分区当中的序号,以上面的文件为例,第一个segment当中存储了0-999的消息,而第二个segment从1000开始。

需要注意的是segment的划分规则,目前据我的研究,是综合了2方面的因素,一个是设定的segment的大小,满了自然会再来一个segment;第二个因素是时间的因素,比如某个topic长时间没有消息写入,那么在有新消息进来的时候,很可能会重新建一个segment,这样做的目的是为了方便在消息失效的时候,针对整个segment进行删除。

index文件当中,包含了2部分内容,分别是消息的在本segment当中的编号和物理offset。这里需要注意的是,在index文件当中,并不是存储了每一条消息的的索引信息,而是采用了 稀疏索引的策略,也就是隔几个存一个索引。

在查找一条消息的时候,首先是根据segment的名字和输入的消息编号,查找所在的segment,之后在根据index文件找到消息的具体位置。


写过程:

消息从java堆转入page cache(即物理内存)

由异步线程刷盘,消息从page cache刷入磁盘

读过程:

消息直接从page cache转入socket发送出去

当从page cache没有找到相应数据时,此时会产生磁盘IO,从磁 盘Load消息到page cache,然后直接从socket发出去

存储设计的优点:

Kafka把topic中一个parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。

通过索引信息可以快速定位message

通过index元数据全部映射到memory,可以避免segment file的IO磁盘操作

通过索引文件稀疏存储,可以大幅降低index文件元数据占用空间大小

到此,关于“kafka文件的存储机制原理”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!

本文标题:kafka文件的存储机制原理
当前网址:https://www.cdcxhl.com/article40/jisieo.html

成都网站建设公司_创新互联,为您提供自适应网站商城网站企业网站制作微信小程序服务器托管动态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设