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缓存中。

  • 相关阅读:
    一种复杂的情感--“外戚”
    追~
    神受的孩子
    不好的习惯
    思杨改编的朝代歌
    siyang入厕
    小思趣事
    今天周三啦~~时光啊
    Python(6)——装饰器
    Python(5)——关于描述符的三种操作方法
  • 原文地址:https://www.cnblogs.com/ITyannic/p/12439676.html
Copyright © 2011-2022 走看看