Skip to content
智畅行科技知识网
Menu
  • 首页
  • 智能
  • 数码
  • 手机
  • 科技
  • 行业资讯
Menu

简单总结下kafka高吞吐的原因

Posted on 2024年12月20日

简单总结下kafka高吞吐的原因

Kafka是分散式讯息系统,需要处理海量的讯息,Kafka的设计是把所有的讯息都写入速度低容量大的硬盘,以此来换取更强的储存能力,但实际上,使用硬盘并没有带来过多的效能损失。

kafka主要使用了以下几个方式实现了超高的吞吐率

顺序读写

kafka的讯息是不断追加到档案中的,这个特性使kafka可以充分利用磁盘的顺序读写效能。

顺序读写不需要硬盘磁头的寻道时间,只需很少的扇区旋转时间,所以速度远快于随机读写。

Kafka官方给出了测试资料(Raid-5,7200rpm):

> 顺序 I/O: 600MB/s

> 随机 I/O: 100KB/s

零拷贝

先简单了解下档案系统的操作流程,例如一个程式要把档案内容传送到网络,这个程式是工作在使用者空间,档案和网络socket属于硬件资源,两者之间有一个核心空间在操作系统内部,整个过程为:

在Linux kernel2.2 之后出现了一种叫做零拷贝(zero-copy)系统呼叫机制,就是跳过“使用者缓冲区”的拷贝,建立一个磁盘空间和内存的直接对映,资料不再复制到“使用者态缓冲区”。

系统上下文切换减少为2次,可以提升一倍的效能。

档案分段

kafka的伫列topic被分为了多个区partition,每个partition又分为多个段segment,所以一个伫列中的讯息实际上是储存在N多个片段档案中。

通过分段的方式,每次档案操作都是对一个小档案的操作,非常轻便,同时也增加了并行处理能力。

批量传送

Kafka允许进行批量传送讯息,先将讯息快取在内存中,然后一次请求批量传送出去。

比如可以指定快取的讯息达到某个量的时候就发出去,或者快取了固定的时间后就传送出去,如100条讯息就传送,或者每5秒传送一次,这种策略将大大减少服务端的I/O次数。

资料压缩

Kafka还支援对讯息集合进行压缩,Producer可以通过GZIP或Snappy格式对讯息集合进行压缩。

压缩的好处就是减少传输的资料量,减轻对网络传输的压力,Producer压缩之后,在Consumer需进行解压,虽然增加了CPU的工作,但在对大资料处理上,瓶颈在网络上而不是CPU,所以这个成本很值得。

好了,今天就简单分享下kafka讯息伫列实现高吞吐的原因,尽请关注,后续有更精彩内容分享,谢谢。

标签: 我国有哪些伟大的科技成就 、 广东科技学院 、 科技的意义和价值 、 工业黑科技 、 科技小制作大全

推荐文章

  • 黑洞绝不仅仅是毁灭的代名词 更是塑造星系和恒星的终极机器
  • 黄仁勋深度专访谈中国特朗普AI台积电英特尔
  • 麒麟980旗舰首次降至2299 大电池4800万 新一代旗舰里价格最低
  • 鸡腿怎么做好吃为你介绍几种做法
  • 鳄鱼皮iPhoneX见过没苹果终于出新款式
  • 魔兽世界服梦回70冲级去血色修道院 虎牙阿诺错过迈恩怀特_副本
  • 魔兽世界天赋只能选治疗60年代德鲁伊套装大解析
  • 魅族联合谷歌将推出AndroidGo手机
  • 魅族确认将携手谷歌推出AndroidGo手机
  • 魅族的新电话没有凹槽

分类

  • 智能
  • 数码
  • 手机
  • 科技
  • 行业资讯

友情链接

Copyright © 2025 重庆市智畅行物联科技有限公司 | 渝ICP备2023011759号-10