在當今大數據時代,企業對實時數據處理的規模、速度和可靠性的要求日益嚴苛。金山云,作為國內領先的云計算服務提供商,其平臺每日需要處理的數據量已達TB級別,涵蓋海量的日志記錄、應用指標和用戶行為數據。面對如此巨大的數據洪流,傳統的消息隊列和流處理平臺在吞吐量、延遲、可擴展性及運維復雜度等方面逐漸顯現出瓶頸。為了構建一個更強大、更高效的日志服務與實時數據處理服務,金山云經過深入的技術選型與評估,最終選擇了Apache Pulsar作為其核心基礎設施。
一、 挑戰:TB級數據洪流下的核心訴求
金山云原有的數據處理架構在處理日均TB級數據時,主要面臨以下幾個關鍵挑戰:
- 海量吞吐與低延遲的平衡:日志類數據爆發性強,需要消息中間件能穩定支撐極高的寫入吞吐(百萬級QPS),同時保證端到端的毫秒級低延遲,以滿足實時監控、報警和數據分析的需求。
- 無限的彈性擴展:業務增長不可預測,數據量可能瞬間激增。系統需要具備無中斷的水平擴展能力,能夠輕松應對流量峰值,而無需復雜的重新分區或數據遷移。
- 數據的持久化與可靠性:日志和事務數據是企業的核心資產,必須保證數據不丟失、不重復,并支持長期保留,以供后續審計、回溯分析和合規性檢查。
- 云原生與多租戶支持:作為公有云服務商,需要為成千上萬的客戶提供隔離、安全、可獨立計費的服務實例,對資源隔離和租戶管理有天然要求。
- 統一的架構簡化運維:希望用一個統一的平臺同時替代傳統的消息隊列、日志總線和實時流處理中間件,降低技術棧的復雜性和運維成本。
二、 為何選擇Apache Pulsar?
在對比了Kafka、RocketMQ等主流技術后,Apache Pulsar憑借其獨特的架構設計,完美契合了金山云的上述需求。
- 分層架構(計算與存儲分離):Pulsar采用計算(Broker)與存儲(BookKeeper)分離的架構。Broker節點無狀態,負責消息的收發和協議處理;BookKeeper節點專門負責數據的持久化存儲。這種架構帶來了革命性的優勢:
- 無縫彈性伸縮:擴容Broker僅需分鐘級別,對業務無感知;存儲層亦可獨立擴展,容量近乎無限。
- 高可用與強一致性:數據在BookKeeper中被多副本同步持久化,即使Broker宕機,數據安全無虞,新Broker可立即接管服務。
- 簡化故障恢復:無狀態Broker的故障恢復極快,無需復雜的數據再平衡。
- 極致的吞吐與低延遲:Pulsar支持分層存儲(Tiered Storage),可將歷史冷數據自動卸載到更廉價的存儲系統(如S3、HDFS),而將熱數據保留在高速存儲(如SSD)中。這一特性使得金山云能夠以低成本長期保留TB級歷史數據,同時保證熱點數據的訪問性能。其高效的流水線處理和零拷貝機制,確保了在高吞吐場景下依然保持穩定的低延遲。
- 原生的多租戶與隔離:Pulsar在架構層面原生支持多租戶。通過
租戶(Tenant)->命名空間(Namespace)->主題(Topic)的三層資源模型,金山云可以為不同客戶或業務線提供邏輯上完全隔離的資源池,并實施精細化的配額管理、認證和授權策略,完美滿足云服務的需求。
- 流與隊列的統一模型:Pulsar獨創的“發布-訂閱”與“消息隊列”統一模型(通過獨占、故障轉移、共享和鍵共享四種訂閱模式實現),讓金山云可以用同一套集群同時支撐日志流式分發(類似Kafka場景)和傳統任務隊列(類似RabbitMQ場景),極大地簡化了技術架構。
- 強大的生態系統與云原生友好:Pulsar原生支持Pulsar Functions(輕量級流處理)、與Flink/Spark的深度集成,并提供了完善的Kafka API兼容層,方便用戶遷移。其基于云的架構設計與Kubernetes等容器編排平臺結合良好,便于實現自動化部署和運維。
三、 Pulsar在金山云的實踐與收益
金山云將Pulsar深度集成到其日志服務(KLS)和實時數據處理管道中:
- 作為高吞吐日志攝取總線:所有服務器、容器和應用日志通過輕量級采集器發送至Pulsar集群。Pulsar以極高的吞吐量接收并持久化這些數據。
- 支撐實時流處理:下游的實時計算引擎(如Flink)直接消費Pulsar中的日志流,進行實時聚合分析、異常檢測和指標計算,結果實時寫入數據庫或推送至儀表盤。
- 實現歷史數據湖歸檔:通過配置分層存儲,超過一定時間的日志數據自動、透明地遷移到對象存儲中,形成數據湖,供離線分析、機器學習訓練和數據挖掘使用,成本大幅降低。
- 服務內部微服務通信:利用Pulsar的隊列訂閱模式,支撐內部服務間的異步解耦通信,實現了技術棧的統一。
取得的顯著收益包括:
- 性能與成本優化:在日均TB級數據壓力下,系統保持穩定,峰值吞吐能力提升數倍,同時存儲成本因分層存儲下降顯著。
- 運維效率提升:計算存儲分離架構使得擴縮容操作變得簡單快捷,運維復雜度降低,系統整體可用性達到99.95%以上。
- 業務敏捷性增強:統一的平臺加速了新業務(如新的日志分析產品、實時風控系統)的上線速度,滿足了客戶多樣化的實時數據處理需求。
- 未來可擴展性:Pulsar的架構為未來向更大數據規模、更復雜處理場景(如全局事件驅動架構)演進奠定了堅實基礎。
###
金山云選擇Apache Pulsar,不僅僅是對一項新技術的采納,更是應對數據規模與復雜度爆炸式增長的必然戰略選擇。Pulsar以其云原生、分層、統一的設計哲學,成功幫助金山云構建了一個面向未來、具備極致彈性、超高可靠性和成本效益的下一代日志與數據處理服務平臺。這一實踐也為業界處理超大規模實時數據流提供了極具價值的參考范式,證明了Pulsar在企業級核心數據管道中擔當重任的能力。