赞
踩
Kakfa依赖文件系统来存储和缓存消息。对于硬盘的传统观念是硬盘总是很慢,基于文件系统的架构能否提供优异的性能?实际上硬盘的快慢完全取决于使用方式。同时 Kafka 基于 JVM 内存有以下缺点:
对象的内存开销非常高,通常是要存储的数据的两倍甚至更高
随着堆内数据的增加,GC的速度越来越慢
实际上磁盘线性写入的性能远远大于任意位置写的性能,线性读写由操作系统进行了大量优化(read-ahead、write-behind 等技术),甚至比随机的内存读写更快。所以与常见的数据缓存在内存中然后刷到硬盘的设计不同,Kafka 直接将数据写到了文件系统的日志中:
写操作:将数据顺序追加到文件中
读操作:从文件中读取
这样实现的好处:
读操作不会阻塞写操作和其他操作,数据大小不对性能产生影响
硬盘空间相对于内存空间容量限制更小
线性访问磁盘,速度快,可以保存更长的时间,更稳定。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。