kafka集群部署-存储空间-带宽计算
一、存储空间计算
假设公司有个业务每天需要向 Kafka 集群发送 1 亿条消息,每条消息保存两份以防止数据丢失,另外消息默认保存两周时间。现在假设消息的平均大小是 1KB,那么 Kafka 集群需要为这个业务预留多少磁盘空间?
每天 1 亿条 1KB 大小的消息,保存两份且留存两周的时间,那么总的空间大小就等于 1 亿 * 1KB * 2 / 1000 / 1000 = 200GB。
一般情况下 Kafka 集群除了消息数据还有其他类型的数据,比如索引数据等,故我们再为这些数据预留出 10% 的磁盘空间,因此总的存储容量就是 220GB。
保存两周容量即为 220GB * 14,大约 3TB 左右。
Kafka 支持数据的压缩,假设压缩比是 0.75,也就是0.75 * 3 = 2.25TB。
总结出,当部署kafka集群的时候需要考虑以下几个元素:
- 新增消息数
- 消息留存时间
- 平均消息大小
- 备份数
- 是否启用压缩
二、带宽
网络大量进行数据传输的框架而言,带宽特别容易成为瓶颈。特别是在跨机房的场景。
带宽也主要有两种:1Gbps 的千兆网络和 10Gbps 的万兆网络,特别是千兆网络应该是一般公司网络的标准配置了。
千兆网络为例,如何规划所需的 Kafka 服务器的数量。
带宽是 1Gbps,即每秒处理 1Gb 的数据,假设每台 Kafka 服务器不是安装在专属的机器上,也就是说每台 Kafka 机器上混布其他服务,大概会用到 70% 的带宽资源。
也就是说单台 Kafka 服务器最多也就能使用大约 700Mb 的带宽资源,即最大带宽资源是700Mb,通常要再额外预留出 2/3 的资源,即单台服务器使用带宽 700Mb / 3 ≈ 240Mbps。
有了带宽量就可以计算1 小时内处理 1TB 数据所需的服务器数量了。
如果我们每秒需要处理 2336Mb 的数据,除以 240,约等于 10 台服务器。如果消息还需要额外复制两份,那么总的服务器台数还要乘以 3,即 30 台。
总结:
- 最大提供70%带宽到kafka使用,避免大流量丢包
- 预留给kafka使用的带宽,最好只使用到机器带宽的1/3。
- 预计每秒会处理到的数据量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南