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。
  • 預計每秒會處理到的數據量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM