刪除Kafka無用主題可提升40%效能
linkedin啟動TopicGC刪除Kafka不用的topic後,已經刪除了近20%的topic,大大降低了Kafka叢集的後設資料壓力。客戶端請求效能提高了 40% 左右,CPU 使用率降低了 30%。
Apache Kafka 是一個開源的事件流平臺,使用者可以在其中建立 Kafka 主題作為資料傳輸單元,然後與生產者和消費者釋出或訂閱該主題。雖然大多數 Kafka 主題都被積極使用,但由於業務需求發生變化或主題本身是短暫的,因此不再需要某些主題。
Kafka 本身沒有自動檢測未使用的主題並刪除它們的機制。這通常不是什麼大問題,因為 Kafka 叢集可以容納相當多的主題,數百到數千個。
但是,如果主題數量不斷增長,它最終會遇到瓶頸並對整個 Kafka 叢集產生破壞性影響。
linkedin的TopicGC 服務就是為了解決這個問題而誕生的。事實證明,刪除約 20% 的主題可以減少 Kafka 的壓力:
後設資料壓力
出於主題管理的目的,Kafka 將主題的後設資料儲存在多個位置,包括 Apache ZooKeeper 和每個代理上的後設資料快取。主題後設資料包含分割槽和副本分配的資訊。
我們這裡做個簡單的計算:topic A可以有25個partition,複製因子為3,也就是說每個partition有3個replicas。即使主題 A 不再被使用,Kafka 仍然需要將所有 75 個副本的位置資訊儲存在某個地方。
後設資料壓力對單個主題的影響可能不那麼明顯,但如果主題很多,它就會產生很大的影響。後設資料可以消耗來自 Kafka 代理和 ZooKeeper 節點的記憶體,並且可以向後設資料請求新增有效負載。
獲取請求
在 Kafka 中,follower 副本定期向 leader 副本傳送獲取請求以與 leader 保持同步。即使對於空主題和分割槽,追隨者仍會嘗試與領導者同步。因為 Kafka 不知道一個主題是否永久未使用,它總是強制跟隨者從領導者那裡獲取。這些冗餘的獲取請求將進一步導致建立更多的獲取執行緒,這可能會導致額外的網路、CPU 和記憶體佔用,並可能支配請求佇列,導致其他請求被延遲甚至丟棄。
控制器初始化
Kafka 控制器是協調和管理 Kafka 叢集中其他代理的代理。許多 Kafka 請求必須由控制器處理,因此控制器可用性對 Kafka 至關重要。
在控制器故障轉移時,必須選出一個新控制器並接管管理叢集的角色。新的controller在充當controller之前,會從ZooKeeper中載入整個叢集的後設資料,這個時間叫做controller initialization time。正如本文前面提到的,未使用的主題會生成額外的後設資料,使控制器初始化速度變慢,並威脅到 Kafka 的可用性。當 ZooKeeper 響應大於 1MB 時,可能會出現問題。對於我們最大的叢集之一,ZooKeeper 響應已經達到 0.75MB,我們預計在兩到三年內它將遇到瓶頸。
詳細點選標題
相關文章
- 刪除Kafka中topicKafka
- ORACLE 刪除無用分割槽Oracle
- ORACLE批量刪除無主鍵重複資料Oracle
- terraform-provider-kafka:用於管理Kafka主題和ACLORMIDEKafka
- Kafka2.6.0釋出——效能大幅提升Kafka
- Kafka超過保留期限資料未刪除的問題Kafka
- mysql刪除主鍵索引,刪除索引語法MySql索引
- Kafka 主題 CLI 教程Kafka
- kafka-eagle刪除topic需要tokenKafka
- PicGo無法刪除雲端圖片問題PicGo
- root 無法刪除檔案,提示許可權不夠?
- 【PK】Oracle 10g刪除主鍵約束後無法刪除唯一約束索引問題的模擬與分析Oracle 10g索引
- kafka-- 過期檔案的刪除Kafka
- oracle adg主庫通過rman無法刪除歸檔Oracle
- iOS程式碼瘦身實踐:刪除無用的類iOS
- VSCode 如何刪除無用的語言格式?VSCode
- 解決vim在insert模式下面用backspace鍵無法刪除的問題模式
- 解密Kafka主題的分割槽策略:提升實時資料處理的關鍵解密Kafka
- mysql-刪除和新增主鍵MySql
- 電腦檔案被佔用無法刪除?Win10系統檔案被佔用無法刪除的解決方法Win10
- docker筆記40-ceph osd誤刪除恢復Docker筆記
- 刪除無效軟連線
- PUBLIC資料庫鏈無法刪除的問題(二)資料庫
- PUBLIC資料庫鏈無法刪除的問題(一)資料庫
- Android studio 減少應用大小,刪除無用資源Android
- 七牛雲端儲存資料,刪除無用資料
- 主題 :學習與自我提升
- Oracle刪除主鍵保留索引的方法Oracle索引
- SAP徹底刪除物料主檔操作
- win10怎麼刪除系統服務_win10刪除系統無用服務教程Win10
- dbca無法刪除資料庫資料庫
- 利用交換機提升無盤網路效能
- 資料夾刪除不掉怎麼辦?資料夾無法刪除
- Windows系統問題,兩個隱藏分割槽無法刪除問題.Windows
- 11g主庫歸檔自動刪除的小問題分析
- 誤刪出資料檔案,透過dbca無法刪除資料庫問題資料庫
- SAP 徹底刪除物料主資料操作
- 可編輯選擇、刪除條目的ListViewView