zoukankan      html  css  js  c++  java
  • Kafka如何实现高性能io?

    一、批量消息

      虽然我们是一笔一笔消息的发送给kafka,但是kafka并不是立即就发送出去的,而是先将消息缓存起来,再一批一起等个合适的时机一起发送出去。

      消费端收到消息不是一个个拆出来一个个处理,而是直接作为一批一起处理,一起读写磁盘io,一起复制,这都大大加快了io的速度。

    二、顺序读写

      磁盘io分为顺序读写和随机读写,而顺序读写的速度要比随机读写的速度要快得多。所以kafka采用顺序读写的机制,收到消息的时候在日志文件顺序中写下多条消息,发送的时候又是顺序的读出多条消息。

    三、page cache

      page cache也就是os cache,只有page cache中没有才会到磁盘中进行读写,这就减少了一些与磁盘io的次数。

    四、零拷贝

      如果要读写的消息不在page cache中,那么就会发生多次拷贝。从磁盘到page cache,再从page cache到用户缓存,再从用户缓存到socket缓存,最后再发送。

      为了减少不必要的拷贝,kafka通过零拷贝技术,直接将page cache中的数据复制到socket缓存中。

  • 相关阅读:
    2019.9.21 Tomcat基于端口的虚拟主机
    shell脚本作业
    DNS原理及其解析过程
    用户管理系统脚本
    pxe批量装机
    磁盘分区挂载脚本
    安装apache脚本
    linux远程拷贝命令及not a regular file 解决方案
    卸载虚拟网卡的方法
    watch的用法
  • 原文地址:https://www.cnblogs.com/ITyannic/p/12439676.html
Copyright © 2011-2022 走看看