`

【赵强老师】Kafka的持久化

阅读更多

一、Kafka持久化概述

Kakfa 依赖文件系统来存储和缓存消息。对于硬盘的传统观念是硬盘总是很慢,基于文件系统的架构能否提供优异的性能?实际上硬盘的快慢完全取决于使用方式。同时 Kafka 基于 JVM 内存有以下缺点:

  • 对象的内存开销非常高,通常是要存储的数据的两倍甚至更高
  • 随着堆内数据的增加,GC的速度越来越慢

实际上磁盘线性写入的性能远远大于任意位置写的性能,线性读写由操作系统进行了大量优化(read-ahead、write-behind 等技术),甚至比随机的内存读写更快。所以与常见的数据缓存在内存中然后刷到硬盘的设计不同,Kafka 直接将数据写到了文件系统的日志中:

  • 写操作:将数据顺序追加到文件中
  • 读操作:从文件中读取

这样实现的好处:

  • 读操作不会阻塞写操作和其他操作,数据大小不对性能产生影响
  • 硬盘空间相对于内存空间容量限制更小
  • 线性访问磁盘,速度快,可以保存更长的时间,更稳定。

二、Kafka的持久化原理解析

一个 Topic 被分成多 Partition,每个 Partition 在存储层面是一个 append-only 日志文件,属于一个 Partition 的消息都会被直接追加到日志文件的尾部,每条消息在文件中的位置称为 offset(偏移量)。

如下图所示,我们之前创建了mytopic1,具有三个分区。我们可以到对应的日志目录下进行查看。

Kafka日志分为index与log(如上图所示),两个成对出现:index文件存储元数据,log存储消息。索引文件元数据指向对应log文件中message的迁移地址;例如2,128指log文件的第2条数据,偏移地址为128;而物理地址(在index文件中指定)+ 偏移地址可以定位到消息。
我们可以使用Kafka自带的工具来查看log日志文件中的数据信息:

分享到:
评论

相关推荐

    传智播客 赵强 Oracle课件

    赵强老师在传智播客的Oracle课程是专为IT专业人士和对数据库技术感兴趣的学员设计的一系列教学资料,旨在深入浅出地讲解Oracle的核心概念、功能以及实际操作技巧。 在赵强老师的课程中,你可以学到以下几个重要的...

    赵强老师的Oracle课件

    想要好好地学习Oracle数据库的朋友呀,你错过了她就太不值得了。里面有好多的Oracle操作命令可能你都没接触过吧。好了,话不多多说。坚信资料不错!你,值得拥有!OK.还有,之所有要你2分打赏,是我给了你这么好的...

    精通JSP编程 作者赵强 编

    精通JSP编程 作者赵强 编 12-18节

    精通JSP编程 作者赵强

    《精通JSP编程》是赵强先生的一部深入解析JSP技术的专业著作,该书针对JSP编程进行了全面且深入的讲解,旨在帮助读者掌握JSP的核心概念和技术,提升Web应用开发能力。根据提供的文件名列表,我们可以推测书籍的章节...

    [1120][赵强精通JSP编程][37M]

    2. **分离业务逻辑与表示层**:通过将业务逻辑放在JavaBean中,表示层放在JSP页面中,可以实现良好的模块化设计。 3. **可移植性强**:由于JSP是基于Java的,所以具有良好的跨平台特性。 4. **丰富的库支持**:JSP...

    Oracle学习笔记(传智播客 赵强)

    在Oracle数据库的学习中,SQL优化是一项至关重要的技能,因为它直接影响到数据库的性能和查询效率。以下是一些关于SQL优化的关键知识点: 1. **使用列名代替通配符(*)**:在编写SQL查询时,避免使用`*`来获取所有列...

    Oracle数据库赵强视频教程【3天】

    教程名称:Oracle 数据库赵强视频教程【3天】教程目录:【】Oracle安装与管理、SQL语句(赵强)【】Orcale存储过程jdbc与Orcale大文本操作等(赵强)【】SQL简单查询触发器视图(赵强)  资源太大,传百度网盘了,链接在...

    10天掌握MongoDB

    NoSQL指的是“不仅仅是SQL”,它是对于传统关系型数据库的一种补充,尤其适用于处理大量非结构化或半结构化数据的情况。NoSQL数据库与传统的关系型数据库相比,其主要优点包括高并发读写能力、海量数据存储、高可...

    day2013-0110-webLogic配置和集群(赵强).zip

    本资料包“day2013-0110-webLogic配置和集群(赵强).zip”包含了关于WebLogic的配置与集群搭建的详细教程,旨在帮助用户深入了解WebLogic的核心功能和管理技巧。 一、WebLogic基础配置 1. 安装与启动:首先,我们...

    信息存储技术的发展赵强.doc

    信息存储技术,作为信息技术的基石之一,从早期的岩画、古书,到现代的半导体、磁盘、光存储,再到先进的集群存储和虚拟化技术,其发展历程见证了人类社会的巨大变革。自20世纪开始,随着“万物皆可数”的理念推动,...

    赵强_微信购物首页改版用户调研1

    相比之下,淘宝APP的用户动机分布更为均衡,表明淘宝在满足用户多样化需求方面做得较好。这提示微信购物和京东应该更加注重提供优质的推荐内容和优惠信息,同时考虑增加可供消遣的内容,吸引无目的浏览的用户。 ...

    java代码-46 赖赵强

    【标题】"java代码-46 赖赵强"所指的可能是一个关于Java编程的项目或示例,由开发者赖赵强创建。在这个项目中,他可能分享了一段特定的Java代码,用于解决某种问题或者实现一个功能。这个标题暗示了这是一个与Java...

    二年级数学生活中的大数赵强PPT学习教案.pptx

    这篇PPT学习教案主要针对二年级的学生,旨在教授他们在生活中如何理解和使用大数。课程以实际生活中的例子引入,帮助...在教学过程中,教师可能会引导学生进行估算、比较和排序,培养他们的逻辑思维和问题解决能力。

    LoadRunner性能测试巧匠训练营-完整版(带目录)-赵强邹伟伟

    《LoadRunner性能测试巧匠训练营》是一本深入讲解LoadRunner性能测试的教材,由赵强和邹伟伟两位专家共同编著。该资源提供的是完整版,且无需密码即可解压阅读,对于想要学习和提升LoadRunner性能测试技能的人来说,...

    二年级数学生活中的大数赵强PPT课件.pptx

    这篇PPT课件是针对二年级学生的数学课程,主题为“生活中的大数”,旨在帮助孩子们理解和掌握大数的概念,并将其与日常生活中的实例相结合。在课件中,通过展示一些实际的例子来引入大数,例如可见的星星数量、教学...

Global site tag (gtag.js) - Google Analytics