Kafka小结

Kafka

是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。

Kafka层级:topic——partition——Replica(Leader/Follower)

Kafka 技术特点

  1. Kafka 实现了零拷贝原理来快速移动数据,避免了内核之间的切换。
  2. Kafka 可以将数据记录分批发送,从生产者到文件系统(Kafka 主题日志)到消费者,处理能够进行更有效的数据压缩并减少 I/O 延迟.记录的批处理分摊了网络往返的开销,使用了更大的数据包从而提高了带宽利用率。
  3. Kafka 采取顺序写入磁盘的方式,避免了随机磁盘寻址的浪费。
  4. 利用了现代操作系统分页存储 Page Cache 来利用内存提高 I/O 效率.
    5.(分区并行)。

可以发现完成「一次读写」需要2次DMA拷贝,2次CPU拷贝。而DMA拷贝是省不了的,所谓的零拷贝技术就是把CPU的拷贝给省掉

mmap是将读缓冲区的地址和用户空间的地址进行映射,实现读内核缓冲区和应用缓冲区共享

sendfile+DMA Scatter/Gather则是把读内核缓存区的文件描述符/长度信息发到Socket内核缓冲区,实现CPU零拷贝

posted @ 2022-01-14 09:37  lvoooop  阅读(30)  评论(0编辑  收藏  举报