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

news/2024/7/3 5:24:20

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

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

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

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

  • 磁盘缓存由Linux系统维护,减少了程序员的不少工作。
  • 磁盘顺序读写速度超过内存随机读写。
  • JVM的GC效率低,内存占用大。使用磁盘可以避免这一问题。
  • 系统冷启动后,磁盘缓存依然可用。

http://www.niftyadmin.cn/n/1408232.html

相关文章

C# public、protected、private

每个类都创造了有自己的名字空间,指方法和变量可以知道彼此的存在,可以使用。 public类不但可以被同一程序包中的其它类使用,别的程序包中的类也可以使用; 变量和方法的修饰字public、protected、private: public&a…

聊一聊 Spring 中的线程安全性

http://www.importnew.com/27440.html

MyBaties分页插件PageHelper的简单使用

2019独角兽企业重金招聘Python工程师标准>>> 抛出问题: 如果想要将现有的select语句改为支持分页功能的查询语句该怎么做呢? 最简单的一种做法就是将所有的select语句都加上limit来实现分页,这种做法有什么问题呢? 有没…

ArcGIS API for Silverlight部署本地地图服务

ArcGIS API for Silverlight部署本地地图服务 首先介绍下我们的开发和部署环境: 部署环境: Windows 7 旗舰版32位操作系统 IIS 6.0 开发环境: Visual Studio 2010 Visual Studio 2010 SP1 Siverlight 4 Net Framework 4 第一步&…

记录一下题目

第一次 1.Object有哪些成员变量 2.equal和""区别 3.介绍一下ThreadLocal 4,TCP/IP 三次握手、backLog、流量控制、拥塞控制 5.Spring的IOC和AOP,动态代理,IOC解决了什么问题 6. JVM有哪些垃圾回收算法 7.CMS四个阶段 8.CMS哪些阶段是…

ArcGIS API FOR Silverlight资源

http://resources.esri.com/arcgisserver/apis/silverlight/ ArcGIS Silverlight API v1.2帮助页面,包含了大量的示例代码,开发帮助及对象库介绍 http://resources.arcgis.com/content/arcgis-api-silverlightwpf ArcGIS Silverlight API v2.0的帮助页面…

拦截器、过滤器、监听器各有什么作用?

这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【拦截器、过滤器、监听器各有什么作用&#xff1…

ArcGisService-GIS服务器安装后配置教程

资源与服务对应表GIS 资源GIS 服务Map document 地图文档Map servicesRaster dataset 影像数据Image servicesGlobe documentGlobe servicesAddress locator 地理编码Geocoding servicesArcGIS ToolboxGeoprocessing servicesGeodatabaseGeodata service 三步简单的WEB GIS步骤…