97、Kafka的性能好在什么地方

Kafka的性能好在什么地方

  • 一、顺序写
  • 二、零拷贝
  • 三、额外补充

kafka不基于内存,而是硬盘存储,因此消息堆积能力更强

一、顺序写

顺序写 : 利用磁盘的顺序访问速度可以接近内存,kafka的消息都是append操作,partition是有序的,节省了磁盘的寻道时间,同时通过批量操作、节省写入次数,partition物理上分为多个segment存储,方便删除。

传统:

  • 读取磁盘文件数据到内核缓冲区
  • 将内核缓冲区的数据copy到用户缓冲区
  • 将用户缓冲区的数据copy到socket的发送缓冲区
  • 将socket发送缓冲区中的数据发送到网卡、进行传输

二、零拷贝

  • 直接将内核缓冲区的数据发送到网卡传输
  • 使用的是操作系统的指令支持

kafka不太依赖JVM,主要理由操作系统的pageCache,如果生产消费速率相当,则直接用pageCache交换数据不需要经过磁盘 IO

三、额外补充

Kafka的优点包括:

  • 高吞吐量:Kafka的设计目标之一是提供高吞吐量的消息传输,它能够支持每秒数百万条消息的传输。

  • 可扩展性:Kafka的分布式架构可以方便地进行扩展,可以通过增加节点来增加吞吐量和存储容量。

  • 可靠性:Kafka通过将数据复制到多个节点来实现数据冗余和高可用性,即使某个节点故障,也可以保证数据不会丢失。

  • 实时性:Kafka能够快速地处理和传输数据,支持实时数据的处理和分析。

  • 灵活性:Kafka可以与各种不同的数据处理和分析工具集成,包括流处理、批处理、数据挖掘等等。

总之,Kafka是一个高性能、高可靠性、高扩展性的分布式流处理平台,非常适合处理大规模实时数据。

你可能感兴趣的:(kafka,分布式,顺序写,零拷贝,高吞吐量,JVM,消息队列)