可以从部署的操作系统,磁盘,带宽这三个方面入手探讨,

就操作系统来说

由于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。

带宽

Kafka线上集群部署方案怎么做?这个是整体的资源规划

相关文章: