kafka为什么那个快?-创新互联

kafka是一个高吞吐速度的消息中间件,可以部署在廉价的主机上。

10年积累的成都网站建设、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有万宁免费网站建设让你可以放心的选择与我们合作。

速度快的原因有两个:

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操作。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站标题:kafka为什么那个快?-创新互联
本文链接:http://myzitong.com/article/dgsejj.html