为什么kafka使用磁盘而不是内存

Posted end

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么kafka使用磁盘而不是内存相关的知识,希望对你有一定的参考价值。

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

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

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

以上是关于为什么kafka使用磁盘而不是内存的主要内容,如果未能解决你的问题,请参考以下文章

kafka如何做到磁盘读写比内存读写还快?

Kafka持久化机制

kafka2.5.0架构硬件选择参考因素

为啥要用kafka?kafka适用啥样的场景?

导航页面时是不是所有 UWP 应用都会泄漏内存?

从内存而不是磁盘加载.NET程序集[关闭]