1.6 设计要点:LSM带来的高性能分析
假如你现在打开 Apache Kafka 的官方文档,其中对 Kafka 的官方定义应该是这样的:
“ Apache Kafka is a distributed streaming platform. ”(0.10.0 ~ Now)
然而实际上,这一定义并不是最开始就有了,在此之前,Kafka有着另一个官方定义:
“ Kafka is a distributed, partitioned, replicated commit log service. ”(before 0.10.0 )
这里的distributed(分布式), partitioned(支持分区的), replicated(支持副本的)我们都有所提及,而剩下的日志服务其实也是 Kafka 设计中的一大亮点。
实际上在阅读代码时,Kafka 给我的感觉就是其花了很大的功夫在其日志处理上,其中有很多设计优化都考虑到了与操作系统或是文件系统的接轨,并由此获得了很好的性能。本节从这其中的四个方面入手,简单分析一下其在高性能及相关方面的设计考量。
将要进行分析的部分有:
Segment
Flush机制
Append-only & 零拷贝
查找机制
Last updated