可以从部署的操作系统,磁盘,带宽这三个方面入手探讨,
就操作系统来说
由于kafka底层IO的实现是基于Java的selector,selector在Linux上实现的机制是epoll(异步),在Windows上实现的是(select),因此它在Linux上能实现更高效的IO性能,而且Linux可以实现零拷贝机制。
磁盘
磁盘来说的话可以使用机械硬盘就可以了
磁盘的规划
我们来计算一下:每天 1 亿条 1KB 大小的消息,保存两份且留存两周的时间,那么总的空间大小就等于 1 亿 * 1KB * 2 / 1000 / 1000 = 200GB。一般情况下 Kafka 集群除了消息数据还有其他类型的数据,比如索引数据等,故我们再为这些数据预留出 10% 的磁盘空间,因此总的存储容量就是 220GB。既然要保存两周,那么整体容量即为 220GB * 14,大约 3TB 左右。Kafka 支持数据的压缩,假设压缩比是 0.75,那么最后你需要规划的存储空间就是 0.75 * 3 = 2.25TB。
带宽
这个是整体的资源规划
有任何问题,欢迎加扫码咨询(备注好对应的技术呦)