一、高性能设计
消息分区:不受单台服务器的限制,可以不受限的处理更多的数据。
顺序读写:磁盘顺序读写,提升读写效率。
页缓存:把磁盘中的数据缓存到内存中,把对磁盘的访问变为对内存的访问。
**零拷贝:**减少上下文切换及数据拷贝。
消息压缩:减少磁盘IO和网络IO。
分批发送:将消息打包批量发送,减少网络开销。
二、零拷贝
- 我们在linux操作系统下进行的普通拷贝。(4次拷贝)
- kafka使用的零拷贝。(2次拷贝)
三、面试题
面试官:Kafka中实现高性能的设计有了解过嘛?
候选人:Kafka 高性能,是多方面协同的结果,包括宏观架构、分布式存储、ISR 数据同步、以及高效的利用磁盘、操作系统特性等。主要体现有这么几点:
消息分区:不受单台服务器的限制,可以不受限的处理更多的数据。
顺序读写:磁盘顺序读写,提升读写效率。
页缓存:把磁盘中的数据缓存到内存中,把对磁盘的访问变为对内存的访问。
零拷贝:减少上下文切换及数据拷贝。
消息压缩:减少磁盘IO和网络IO。
分批发送:将消息打包批量发送,减少网络开销。