天天看點

快手億級Kafka叢集應用實踐與技術演進之路

快手億級Kafka叢集應用實踐與技術演進之路

Kafka 系統在快手有着很廣泛的應用,随着其業務的高速發展, Kafka 叢集的規模也成指數增長,目前快手 Kafka 叢集日消息處理總量達數萬億級别,峰值超過 1 億 /s。與此同時,快手也面臨了很多新問題與技術挑戰。本文整理自快手進階架構師、大資料架構團隊負責人趙健博在  QCon 北京2019 上的演講,他介紹了 Kafka 系統在快手的應用實踐、遇到的問題以及相應的技術的演進過程。

業務場景

先來看業務場景,在快手,Kafka 被大規模使用着。從場景上看,我們把 Kafka 分成了 3 類叢集。第一類,線上叢集,Kafka 作為消息中間件,為不同線上業務之間提供異步消息通知服務;第二類,LOG 叢集,業務程式直接将 LOG 打給 Kafka,并通過 Kafka 進行傳輸與收集,由于資料不落地,是以這個過程不能出現由于 Kafka 問題導緻業務程式受到影響,這對 Kafka 可用性要求很高,另外,LOG 叢集還為重要的實時計算或者模型訓練提供資料源;第三類,離線叢集,LOG 資料最終的彙聚點,資料會被實時 dump 到 HDFS 中,這部分資料用于離線處理。類似的,離線叢集還為次要的實時計算、實時訓練提供資料源。

技術演進

第一個階段:為了支援業務的快速發展,我們首先做了多叢集建設以及增加了 Kafka 平滑擴容功能;

第二個階段,為了保障業務穩定,我們對 Kafka 的可用性進行了改造,經過改造,我們将由于單點當機發現與恢複的時間從 91s 優化到 6s 左右,有 15 倍的提升;

第三個階段,為了增加系統的可維護性以及提升讀系統的運維效率,我們對資料 Mirror 服務做了叢集化建設并開發了資源管理平台;

第四個階段,為了進一步提升 Kafka 的穩定性、性能,我們做了資源隔離、對 cache 進行了改造、并針對消費者進行了智能限速等。

2019 年,技術疊代還在繼續。接下來,我将會介紹其中 5 點的細節:平滑擴容、Mirror 叢集化、資源隔離、cache 改造、消費智能限速。

快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路
快手億級Kafka叢集應用實踐與技術演進之路