- 分布式實時處理系統:原理、架構與實現
- 盧譽聲
- 1026字
- 2019-01-03 10:50:23
1.4.3 Apache Storm
隨著互聯網業務數據規模的急劇增加,人們處理和使用數據的模式已然發生了天翻地覆的變化,傳統的技術架構已經越來越無法適應當今海量數據處理的需求。MapReduce、Hadoop以及Spark等技術的出現使得我們能處理的數據量比以前要多得多,這類技術避免了我們面對海量數據時的措手不及,也在一定程度上緩解了傳統技術架構過時的問題。
但是,隨著業務數據規模的爆炸式增長和對數據實時處理能力的需求越來越高,原本承載著海量數據處理任務的批處理系統在實時計算處理方面越發顯得乏力。這么說的原因很簡單,像Hadoop使用的MapReduce這樣的數據處理技術,其設計初衷并不是為了滿足實時計算的需求。任務式計算模型與實時處理系統在需求上存在著本質的區別。要做到實時性,不僅需要及時地推送數據以便處理,還要將數據劃分成盡可能小的單位,而像HDFS這樣的系統存儲推送數據的能力已經遠不能滿足實時性的需求。
因此,Apache Storm實時處理系統的出現順應了實時數據處理業務的需求。Apache Storm是一個開源的、實時的計算平臺,最初由社交分析公司Backtype的Nathan Marz編寫,后來被Twitter收購,并作為開源軟件發布。從整體架構上看,Apache Storm和Hadoop非常類似。Apache Storm從架構基礎本身就實現了實時計算和數據處理保序的功能,而且從概念上看,Apache Storm秉承了許多Hadoop的概念、術語和操作方法。
Apache Storm作為實時處理系統中的一個典型案例,其特點和優勢如下。
1)高可擴展性:Apache Storm可以每秒處理海量消息請求,同時該系統也極易擴展,只需增加機器并提高計算拓撲的并行程度即可。根據官方數據,在包含10個節點的Apache Storm集群中可以每秒處理一百萬個消息請求,由此可以看出Apache Storm的實時處理性能優越。
2)高容錯性:如果在消息處理過程中出現了異常,Apache Storm的消息源會重新發送相關元組數據,確保請求被重新處理。
3)易于管理:Apache Storm使用ZooKeeper來協調集群內的節點配置并擴展集群規模。
4)消息可靠性:Apache Storm能夠確保所有到達計算拓撲的消息都能被處理。
本書從實時處理系統的角度出發,結合分布式系統開發過程中的各種實踐,開發一套基于C/C++實現的實時處理系統,我們會在編程實踐過程中針對語言的特殊性講解大量實時處理系統編程設計指導、編程原理和實踐經驗,從通信系統的設計、軟件架構的設計、模塊接口設計、核心組件內部設計與實現,到一些高級特性設計實現,由淺入深地指導讀者開發出高性能分布式實時處理系統。隨后介紹一些高層抽象,希望讀者可以自行研究并進行設計實現,將本書教授的知識融會貫通。最后我們以幾個實例介紹如何使用編寫的系統進行分析,并在公有云上部署實際的系統與服務,讓讀者有更深刻的認識。
- 操作系統實用教程(Linux版)
- Windows Server 2012 Hyper-V:Deploying the Hyper-V Enterprise Server Virtualization Platform
- Linux系統架構與運維實戰
- Learning Android Intents
- Linux性能優化
- Linux使用和管理指南:從云原生到可觀測性
- 細說Linux基礎知識
- 注冊表應用完全DIY
- Learning Magento 2 Administration
- OpenStack系統架構設計實戰
- VMware Horizon View Essentials
- Red Hat Enterprise Linux 6.4網絡操作系統詳解
- 精解Windows 10
- μC/OS-III內核實現與應用開發實戰指南:基于STM32
- Agile IT Security Implementation Methodology