成本
选择机械硬盘划算,kafka大量使用磁盘不假,但它使用的方式多是顺序读写操作
一定程度规避了机械硬盘的最大劣势,即随机读写操作慢。
- 追求性价比的公司可以不搭建RAID,使用普通磁盘组成存储空间即可
- 使用机械磁盘完全可以胜任kafka线上环境
磁盘容量
假设公司业务每天需要向
kafka发送:1亿条消息
每条消息保存:2份以防止丢失
默认保存周期为:2周
计算过程:
- 每条1亿条1kb大小的消息,保存2份切保存2周时间,
- 那么总空间大小为 1亿 1KB 2 / 1000 / 1000 = 200GB
- 除了消息外,还会存在其他类型的数据,比如索引数据,预留10%的磁盘,因此总存储量为220GB
- 保留2周为 200GB * 14 = 3TB
- kafka支持数据压缩,假设压缩比为0.75 则需存储的空间为 0.75 * 3 = 2.25 TB
考虑因素:
- 带宽:1Gbps,即每秒处理1Gb的数据
- 通常情况下假设kafka会用到70%的带宽资源,因为总要为其他应用或进程保留一些资源,这还只是最理想情况
- 实际上可能还需要额外预留2/3的资源,即单台服务使用带宽700Mb/3 = 240Mbps
- 一台机子240Mbps,计算1H处理1TB需要多少台服务器,每秒需要处理2336Mb数据,除以240,约等于10台服务器,如果消息需要做复制。则总服务器乘以3,即30台
