面试官:Kafka是如何实现百万级高吞吐量的?
Kafka是一个非常优秀的消息系统,它提供了高吞吐量、低延迟和高可靠性等特性。通过使用批量发送与压缩、优秀的网络模型、磁盘顺序写、页缓存、分区并发、sendfile零拷贝等技术,Kafka可实现百万级高吞吐量。
Kafka 为什么这么快?
客户端 producer 有个参数 batch.size,默认是 16KB。它会为每个分区缓存消息,一旦满了就打包将消息批量发出。看上去这是个能够提升性能的设计。不过很显然,因为这个参数是分区级别的,如果分区数越多,这部分缓存所需的内存占用也会更多。