Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >为什么说Kafka使用磁盘比内存快

为什么说Kafka使用磁盘比内存快

作者头像
小程故事多
发布于 2018-08-22 02:23:03
发布于 2018-08-22 02:23:03
8230
举报
文章被收录于专栏:微服务生态微服务生态

学习过[跟我学Kafka源码之LogManager分析]的同学一定会问为什么Kafka大量使用了磁盘作为传统意义的缓存。

其实Kafka最核心的思想是使用磁盘,而不是使用内存,可能所有人都会认为,内存的速度一定比磁盘快,我也不例外。在看了Kafka的设计思想,查阅了相应资料再加上自己的测试后,发现磁盘的顺序读写速度和内存持平。

而且Linux对于磁盘的读写优化也比较多,包括read-ahead和write-behind,磁盘缓存等。如果在内存做这些操作的时候,一个是JAVA对象的内存开销很大,另一个是随着堆内存数据的增多,JAVA的GC时间会变得很长,使用磁盘操作有以下几个好处:

  • 磁盘缓存由Linux系统维护,减少了程序员的不少工作。
  • 磁盘顺序读写速度超过内存随机读写。
  • JVM的GC效率低,内存占用大。使用磁盘可以避免这一问题。
  • 系统冷启动后,磁盘缓存依然可用。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.01.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hadoop、Spark、Kafka面试题及答案整理
一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成。
大数据技术架构
2019/08/16
1.2K0
为什么 Kafka 速度那么快?
Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。
Java技术栈
2019/08/15
4700
同样是消息队列,为什么Kafka这么快?
Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。
Bug开发工程师
2019/06/17
1.4K0
同样是消息队列,为什么Kafka这么快?
面试官:看你简历写了熟悉Kafka,它为什么速度会这么快?
Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。
用户5546570
2019/06/06
7660
面试官:看你简历写了熟悉Kafka,它为什么速度会这么快?
3台廉价机器每秒写入2百万!Kafka为什么那么快?
Kafka 的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka 的特性之一就是高吞吐率。
张哥编程
2024/12/19
1260
3台廉价机器每秒写入2百万!Kafka为什么那么快?
基于磁盘的Kafka为什么这么快
Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序。Kafka虽然是基于磁盘做的数据存储,但却具有高性能、高吞吐、低延时的特点,其吞吐量动辄几万、几十上百万,这其中的原由值得我们一探究竟。本文属于Kafka知识扫盲系列,让我们一起掌握Kafka各种精巧的设计。
大数据技术架构
2019/08/15
7870
基于磁盘的Kafka为什么这么快
【Kafka】一文详解零拷贝原理……
实际上,零拷贝是有广义和狭义之分,目前我们通常听到的零拷贝,包括上面这个定义减少不必要的拷贝次数都是广义上的零拷贝。其实了解到这点就足够了。
857技术社区
2022/05/17
6.4K0
【Kafka】一文详解零拷贝原理……
Kafka 是怎么存储的?为什么速度那么快?
Kafka 依赖于文件系统(更底层地来说就是磁盘)来存储和缓存消息。在我们的印象中,对于各个存储介质的速度认知大体同下图所示的相同,层级越高代表速度越快。很显然,磁盘处于一个比较尴尬的位置,这不禁让我们怀疑 Kafka 采用这种持久化形式能否提供有竞争力的性能。在传统的消息中间件 RabbitMQ 中,就使用内存作为默认的存储介质,而磁盘作为备选介质,以此实现高吞吐和低延迟的特性。然而,事实上磁盘可以比我们预想的要快,也可能比我们预想的要慢,这完全取决于我们如何使用它。
码农架构
2021/02/24
1.7K1
Kafka 是怎么存储的?为什么速度那么快?
Kafka的生成者、消费者、broker的基本概念
kafka是一款基于发布与订阅的消息系统。它一般被称为“分布式提交日志”或者“分布式流平台”。文件系统或者数据库提交日志用来提供所有事物的持久化记录,通过重建这些日志可以重建系统的状态。同样地,kafka的数据是按照一定顺序持久化保存的,可以按需读取。
chenchenchen
2019/09/03
6.1K1
Kafka的生成者、消费者、broker的基本概念
Kafka为什么吞吐量大、速度快?
Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序。
用户4283147
2022/10/08
1.2K0
Kafka为什么吞吐量大、速度快?
BAT大数据面试题及答案
一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成 header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常)构成。当magic的值为1的时候,会在magic和crc32之间多一个字节的数据:attributes(保存一些相关属性,比如是否压缩、压缩格式等等);如果magic的值为0,那么不存在attributes属性 body是由N个字节构成的一个消息体,包含了具体的key/value消息
Maynor
2021/12/06
6040
【深度知识】Kafka原理入门和详解
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
辉哥
2019/11/05
1.8K0
kafka篇-设计思路
许多互联网公司,每天都会产生大量的日志数据,包括用户行为记录、运营指标、系统运行状况的监控数据等。为了分析用户的行为或者监控系统的状态,需要对这些数据进行周期性的分析和统计。
大数据技术架构
2019/08/16
7450
Kafka:高吞吐量、消息精确一次语义以及保证消息顺序
Kafka 最初由 Linkedin 公司开发,是一个分布式、支持分区的、多副本的,基于 Zookeeper 协调的分布式消息系统,其最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于 Hadoop 的批处理系统、低延迟的实时系统、Storm/Spark 流式处理引擎、Web/Nginx 日志、访问日志,消息服务等等,用 Scala 和 Java 语言编写,Linkedin 于 2010 年将其贡献给了 Apache 基金会并成为顶级开源项目。
CG国斌
2021/12/07
1.4K0
Kafka:高吞吐量、消息精确一次语义以及保证消息顺序
Kafka:高吞吐量、消息精确一次语义以及保证消息顺序
Kafka 最初由 Linkedin 公司开发,是一个分布式、支持分区的、多副本的,基于 Zookeeper 协调的分布式消息系统,其最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于 Hadoop 的批处理系统、低延迟的实时系统、Storm/Spark 流式处理引擎、Web/Nginx 日志、访问日志,消息服务等等,用 Scala 和 Java 语言编写,Linkedin 于 2010 年将其贡献给了 Apache 基金会并成为顶级开源项目。
CG国斌
2020/06/16
3.3K0
Kafka为什么这么快?
Kafka 是一个基于发布-订阅模式的消息系统,它可以在多个生产者和消费者之间传递大量的数据。Kafka 的一个显著特点是它的高吞吐率,即每秒可以处理百万级别的消息。那么 Kafka 是如何实现这样高得性能呢?本文将从七个方面来分析 Kafka 的速度优势。
wayn
2023/08/27
3950
Kafka为什么这么快?
小白也能看懂的简单明了kafka原理解析
介绍 分布式消息系统kafka的提供了一个生产者、缓冲区、消费者的模型 broker:中间的kafka cluster,存储消息,是由多个server组成的集群 topic:kafka给消息提供的分类
小小科
2018/05/03
9930
小白也能看懂的简单明了kafka原理解析
kafka原理解析
 broker:中间的kafka cluster,存储消息,是由多个server组成的集群。  topic:kafka给消息提供的分类方式。broker用来存储不同topic的消息数据。  producer:往broker中某个topic里面生产数据。  consumer:从broker中某个topic获取数据。
爱撸猫的杰
2020/03/19
4640
深入理解Apache Kafka
Kafka由LinkedIn公司于2011年推出,自那时起功能逐步迭代,目前演变成一个完整的平台级产品,它允许您冗余地存储巨大的数据量,拥有一个具有巨大吞吐量(数百万/秒)的消息总线,并且支持实时流任务处理。总的来说,Kafka是一个分布式,可水平扩展,容错的日志提交系统
公众号_松华说
2019/07/16
5170
深入理解Apache Kafka
一文理解Kafka如何做到高吞吐
因为硬盘每次读写都会寻址和写入,其中寻址是一个耗时的操作。所以为了提高读写硬盘的速度,Kafka使用顺序I/O,来减少了寻址时间:收到消息后Kafka会把数据插入到文件末尾,每个消费者(Consumer)对每个Topic都有一个offset用来表示读取的进度。
全菜工程师小辉
2021/07/23
1.2K0
相关推荐
Hadoop、Spark、Kafka面试题及答案整理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档