关于后端:为什么-Kafka-很快

34次阅读

共计 523 个字符,预计需要花费 2 分钟才能阅读完成。

为什么 Kafka 很快?

2011 年初,LinkedIn 开源了 Kafka,这是一个分布式事件流平台。它以作家弗朗茨 - 卡夫卡(Franz Kafka)的名字命名。顾名思义,Kafka 是为写而优化的。它为解决实时数据馈送提供了一个高吞吐量、低提早的平台,在互联网公司中失去广泛应用。


Kafka 通过程序 I/O (Sequential I/O) 和零拷贝 (Zero Copy) 实现了低提早的消息传递。许多其余音讯平台通常也采纳雷同的技术。


咱们用下图的数据传输过程来解释零拷贝。

步骤 1.1 – 1.3

生产者写入数据

步骤 2

消费者读取数据,不应用零拷贝技术

  • 2.1: 数据从磁盘加载到操作系统缓存
  • 2.2 数据从操作系统缓存复制到 Kafka 过程
  • 2.3 Kafka 过程将数据复制到套接字缓冲区 (Socket Buffer)
  • 2.4 数据从套接字缓冲区复制到网卡
  • 2.5 网卡向用户发送数据

步骤 3

消费者应用零拷贝技术读取数据

  • 3.1: 数据从磁盘加载到操作系统缓存
  • 3.2 操作系统缓存通过 sendfile() 命令间接将数据复制到网卡
  • 3.3 网卡向用户发送数据

零拷贝节俭了应用程序和内核上下文之间屡次数据拷贝。
这种办法可将工夫缩短约 65%

如果你对细节感兴趣,欢送留言通知我。

【关注公众号:ByteByteGo】

正文完
 0