Kafka线上部署方案

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.集群数量