官术网_书友最值得收藏!

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++實現的實時處理系統,我們會在編程實踐過程中針對語言的特殊性講解大量實時處理系統編程設計指導、編程原理和實踐經驗,從通信系統的設計、軟件架構的設計、模塊接口設計、核心組件內部設計與實現,到一些高級特性設計實現,由淺入深地指導讀者開發出高性能分布式實時處理系統。隨后介紹一些高層抽象,希望讀者可以自行研究并進行設計實現,將本書教授的知識融會貫通。最后我們以幾個實例介紹如何使用編寫的系統進行分析,并在公有云上部署實際的系統與服務,讓讀者有更深刻的認識。

主站蜘蛛池模板: 郑州市| 门源| 蒙城县| 鄂尔多斯市| 酒泉市| 平湖市| 德安县| 桐柏县| 贵州省| 剑河县| 水富县| 隆昌县| 衡山县| 苍山县| 灌南县| 开远市| 鄂托克旗| 新竹市| 长治市| 临潭县| 新源县| 钟祥市| 乌兰浩特市| 通渭县| 长岭县| 儋州市| 哈巴河县| 江山市| 望江县| 易门县| 万全县| 修水县| 平舆县| 富阳市| 青川县| 徐水县| 定陶县| 江津市| 延吉市| 定结县| 保山市|