1.操作系统选择
Linux/Windows/MacOS 三种操作系统kafka最好的搭档还是Linux,原因有几个方面
a.I/O模型
kafka客户端的I/O使用Java的Selector实现,Selector在Linux上的实现机制是epoll,在Windows上是select。性能上不如Linux。
b.数据传输效率
Linux支持零拷贝(ZeroCopy),而Windows直到Java 8的60更新版本
才支持这个功能。
零拷贝:把内核空间地址和用户空间的虚拟地址映射到同一个物理地址,这样DMA就可以填充对内核和用户空间进程同时可见的缓冲区了。省去了内核与用户空间的往来拷贝,java也利用操作系统的此特性来提升性能。
c.社区的支持度
Kafka官方基本上不修复Windows存在的Bug
2.磁盘选择
kafka基本上是顺序读写,机械硬盘就可以支持,不需要固态硬盘
3.磁盘容量
4.集群数量