从品牌网站建设到网络营销策划,从策略到执行的一站式服务
kafka是一个高吞吐速度的消息中间件,可以部署在廉价的主机上。
创新互联公司专注于寒亭企业网站建设,自适应网站建设,成都商城网站开发。寒亭网站建设公司,为寒亭等地区提供建站服务。全流程定制网站制作,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
速度快的原因有两个:
1.从写数据方面:写入的数据按顺序写入到磁盘;memory mapped files
磁盘读写的快慢取决于你怎么使用它,写入的时候可以选择顺序写入和随机写入,kafka选择的时顺序写入机制,该机制的读写速度和内存的速度基本持平
使用顺序写入的好处:
1.磁盘顺序写入的速度比内存随机速度快
2.在内存中操作时,jvm的堆中数据量大,GC时的效率低,使用磁盘可以避免这个问题
3.顺序写入系统冷启动后,磁盘缓存依然可以使用。
memory mapped files
kafka写入数据时不是实时写入磁盘的,它利用了现代操作系统分页存储来利用内存提高I/O效率,先写在内存中,在一定的时间flush到磁盘中。
Kafka提供了一个参数——producer.type来控制是不是主动flush,如果Kafka写入到mmap之后就立即flush然后再返回Producer叫 同步 (sync);写入mmap之后立即返回Producer不调用flush叫异步 (async)
memory mapped files(mmap)即内存映射文件,在64位系统中一般可以表示20G的数据文件,它的工作原理使用操作系统的page来实现文件到物理内存的直接映射。映射之后
对物理内存的操作也可以同步到硬盘上。这种方式可以获取很大的I/O提升,省去了用户空间到内核空间的开销(read会把数据先放在内核空间,然后复制到用户空间的内存中)
2.从读数据方面
基于sendfile实现zero copy
传统read/write方式进行网络文件传输的方式,在这个过程当中,文件数据经过四个copy过程
硬盘---内核buf--用户buf----socket相关缓冲区---协议引擎
sendfile系统调用可以提供一种减少以上多次copy,提升文件传输性能的方法。
硬盘---内核buf----socket相关缓存----协议引擎
在内核版本2.4之后,文件描述符结果被改变,sendfile实现了更简单的方式,再次减少了一次copy操作。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图