kafka具有高吞吐率特点,支持百万级每秒写入。kafka之所以这么快,主要有以下几个方面的原因:
优点:
(1)磁盘顺序读写可媲美内存的随机读写
(2)磁盘操作避免了内存GC效率低问题
(3)系统冷启动时,磁盘缓存依然可用
优点:
提升IO,省去了用户空间到内核空间复制的开销,适用于读取大文件
缺点:
(1)因为是按页加载到内存,当文件不足一页时会有部分内存空间浪费
(2)当内存空间不足时,可能导致缓存的频繁替换,而控制权在操作系统
(1)传统的网络传输文件,需要4次copy:
硬盘—>内核 buf—>用户 buf—>Socket 缓冲区—>协议引擎
(2)而基于sendfile系统调用,减少了内核到用户之间的copy
硬盘—>内核 buf—>Socket 缓冲区—>协议引擎
优点:减少数据大小,从而减少网络传输时间
缺点:额外消耗cpu资源,但通常网络传输带宽是瓶颈
推荐阅读
加小编微信(备注:大数据)
拉你入“大数据学习交流群”
更多面试题尽在“BAT笔试面试”公众号