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。
  • 预计每秒会处理到的数据量
posted @   klm-kain  阅读(1142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示