Skip to main content
NetApp Solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

規模調整

貢獻者

卡夫卡的規模調整可透過四種組態模式執行:簡單、精細、反轉和分割區。

簡單易用

簡易模式適用於首次使用Apache Kafka的使用者或早期狀態使用案例。在此模式下、您需要提供處理量MBps、讀取扇出、保留和資源使用率百分比(預設為60%)等需求。您也可以進入內部部署(裸機、VMware、Kubernetes或OpenStack)或雲端等環境。根據這項資訊、Kafka叢集的規模可提供代理程式、zookeeper、Apache Kafka Connect工作人員、架構登錄、REST Proxy、ksqlDB及Confluent控制中心所需的伺服器數量。

對於階層式儲存設備、請考慮使用精細的組態模式來調整Kafka叢集的規模。精細模式適用於經驗豐富的Apache Kafka使用者或定義明確的使用案例。本節說明生產商、串流處理器及使用者的規模調整。

製造商

若要說明Apache Kafka的生產商(例如原生用戶端、REST Proxy或Kafka連接器)、請提供下列資訊:

  • 名稱 Spark.

  • *監製者類型。*應用程式或服務、Proxy(REST、MQTT、其他)、以及現有資料庫(RDBMS、NoSQL、其他)。您也可以選取「我不知道」。

  • *平均處理量。*以每秒事件為單位(例如1、000、000)。

  • *尖峰處理量。*每秒事件數(例如400萬)。

  • 平均訊息大小(以位元組為單位)、未壓縮(最多1MB;例如1000)。

  • *訊息格式。*選項包括Avro、Json、傳輸協定緩衝區、二進位、文字、 「我不知道」和其他。

  • *複寫係數*選項為1、2、3(一致推薦)、4、5、 或6.

  • *保留時間*一天(例如)。您想要將資料儲存在Apache Kafka多長時間?在無限時間內輸入-1及任何單位。此計算機假設保留時間為10年、以供無限期保留。

  • 選取「啟用分層儲存以減少代理計數並允許無限儲存?」核取方塊。

  • 啟用階層式儲存設備時、保留欄位會控制儲存在本機代理程式上的常用資料集。歸檔保留欄位可控制資料儲存在歸檔物件儲存區的時間長度。

  • *歸檔儲存保留*一年(例如)。您希望將資料儲存在歸檔儲存設備中多久?在無限期間內輸入-1及任何單位。此計算機假設保留10年、以便無限期保留。

  • 成長倍率 1(例如)。如果此參數的值是根據目前處理量而定、請將其設為1。若要根據額外成長來調整規模、請將此參數設為成長倍頻。

  • 產生者執行個體數。 10(例如)。將執行多少個生產商執行個體?此輸入是將CPU負載併入規模計算所需的。空白值表示CPU負載未納入計算。

根據此範例輸入、規模調整對生產商有下列影響:

  • 未壓縮位元組的平均處理量:1Gbps。未壓縮位元組的尖峰處理量:4Gbps。以壓縮位元組為單位的平均處理量:400Mbps。尖峰處理量(壓縮位元組):1.6GBps。這是根據預設的60%壓縮率(您可以變更此值)。

    • 所需的總代理熱集儲存容量:31、104 TB、包括複寫、壓縮。所需的非代理歸檔儲存設備總數:378、432TB、已壓縮。使用 "https://fusion.netapp.com" 以利規模調整。StorageGRID

串流處理器必須說明其應用程式或服務、這些應用程式或服務會耗用Apache Kafka的資料、並將資料傳回Apache Kafka。在大多數情況下、這些都是以ksqlDB或Kafka串流建置而成。

  • 名稱 Spark streamer。

  • *處理時間。*此處理器處理單一訊息需要多久時間?

    • 1毫秒(簡單、無狀態轉換)[範例]、10毫秒(記憶體內有狀態作業)。

    • 100ms(狀態網路或磁碟作業)、1000ms(第三方REST通話)。

    • 我已對此參數進行基準測試、並確切瞭解所需時間。

  • 輸出保留。 1天(範例)。串流處理器會將輸出傳回Apache Kafka。您希望此輸出資料在Apache Kafka中儲存多久?在無限期間內輸入-1及任何單位。

  • 勾選「啟用分層儲存以減少Broker Count並允許無限儲存?」核取方塊。

  • 歸檔儲存保留 1年(例如)。您希望將資料儲存在歸檔儲存設備中多久?在無限期間內輸入-1及任何單位。此計算機假設保留10年、以便無限期保留。

  • 輸出傳遞百分比。 100(例如)。串流處理器會將輸出傳回Apache Kafka。傳入處理量的多少百分比會輸出回Apache Kafka?例如、如果傳入處理量為20Mbps、而此值為10、則輸出處理量將為2Mbps。

  • 從哪些應用程式讀取?選取「Spark」,這是在生產廠商類型規模調整中使用的名稱。根據上述輸入、您可以預期調整大小對串流處理程序執行個體和主題分割區預估的影響如下:

  • 此串流處理器應用程式需要下列數目的執行個體。傳入的主題也可能需要這麼多分割區。請聯絡Conflent以確認此參數。

    • 平均處理量為1、000、沒有成長倍頻

    • 4、000個尖峰處理量、無成長倍頻

    • 平均處理量1、000個、使用成長倍頻

    • 4、000個尖峰處理量、使用成長倍頻

消費者

請描述您的應用程式或服務、這些應用程式或服務會耗用Apache Kafka的資料、而不會產生回Apache Kafka;例如、原生用戶端或Kafka Connector。

  • 名稱 Spark消費者。

  • *處理時間。*此消費者處理單一訊息所需的時間?

    • 1毫秒(例如、記錄等簡單且無狀態的工作)

    • 10ms(快速寫入資料存放區)

    • 100毫秒(緩慢寫入資料存放區)

    • 1000毫秒(第三方REST通話)

    • 已知持續時間的其他基準程序。

  • *使用者類型。*應用程式、Proxy或接收到現有的資料存放區(RDBMS、NoSQL、其他)。

  • 從哪些應用程式讀取?將此參數與先前決定的監製者和串流規模連結起來。

根據上述輸入、您必須決定使用者執行個體和主題分割預估的規模。使用者應用程式需要下列執行個體數目。

  • 平均處理量為2、000、沒有成長倍頻

  • 8000個尖峰處理量、無成長倍頻

  • 平均處理量為2、000、包括成長倍率

  • 8000個尖峰處理量、包括成長倍頻

傳入的主題也可能需要這個數目的分割區。請聯絡Conflent以確認。

除了對生產商、串流處理器和消費者的要求之外、您還必須提供下列額外要求:

  • *重建時間*例如4小時。如果Apache Kafka Broker主機故障、資料遺失、而且配置了新主機來更換故障主機、那麼這台新主機重建的速度必須有多快?如果值不明、請將此參數留白。

  • *資源使用率目標(百分比)。*例如60。您希望主機在平均處理量期間的使用率為何?除非您使用Conflent自我平衡叢集、否則Conflent建議使用率為60%、在此情況下、使用率可能會較高。

描述您的環境

  • 您的叢集將在哪些環境中執行? Amazon Web Services、Microsoft Azure、Google雲端平台、內部部署裸機、內部部署VMware、 內部部署OpenStack或內部部署Kubernates?

  • *主機詳細資料。*核心數:48(例如)、網路卡類型(10GbE、40GbE、16GbE、1GbE或其他類型)。

  • *儲存磁碟區。*主機:12(例如)。每個主機支援多少個硬碟機或SSD?Conflent建議每個主機使用12個硬碟機。

  • 儲存容量/磁碟區(單位:GB)。 1000(例如)。單一磁碟區可儲存多少GB儲存空間?Connent建議使用1TB磁碟。

  • *儲存組態。*如何設定儲存磁碟區?Conflent建議使用RAID10、以充分發揮所有Conflent功能的優勢。JBOD、SAN、RAID 1、RAID 0、RAID 5、 也支援其他類型。

  • 單一Volume處理量(Mbps)。 125(例如)。單一儲存磁碟區每秒讀取或寫入MB的速度有多快?Confluent建議使用標準硬碟、通常處理量為125MBps。

  • 記憶體容量(GB)。 64(例如)。

確定環境變數之後、請選取「調整叢集大小」。根據上述範例參數、我們針對Connent Kafka決定了下列規模:

  • * Apache Kafka.* Broker數量:22。您的叢集需要儲存設備。考慮啟用階層式儲存設備、以減少主機數量、並允許無限儲存。

  • * Apache Zookeeper。*計數:5;Apache Kafka Connect工作人員:數:2;架構登錄:數:2;REST Proxy:數:2;ksqlDB:數:2;ConFluent Control Center:數:1。

不需考量使用案例、即可針對平台團隊使用反轉模式。使用分割模式來計算單一主題所需的分割區數量。請參閱 https://eventsizer.io 以反轉和分割模式為基礎進行規模調整。