Storm 實時流計算 數據將在各個維度交叉關聯,數據爆炸已不可避免, 流式處理加nosql產品所以產生, 前者解決實時處理框架,後者處理數據大規模存儲計算.算法
基於對傳統數據庫處理的流式化. 對流式框架自己的研究. 工業界實時數據庫.sql
2011年Twitter開源storm 能夠快速搭建一套健壯易用的實時流處理框架,配合sql產品或nosql產品或mapreduce平臺可作實時產品.數據庫
Topology DRPC Tridentjson
Storm 開源的分佈式實時計算系統,簡單可靠的處理大量數據流. 使用場景爲實時分析,在線機器學習,持續計算,分佈式RPC,ETL等.服務器
可使用任意語言開發應用,推薦go語言併發
Storm集羣中真正運行topology的主要有三個實體,工做進程,線程和任務.任務是真正進行數據處理的實體.每一個線程可執行多個任務.spout,bolt被開發出來就是做爲一個或多個任務的方式執行的.每臺機器執行多個進程,每一個進程有多個線程.計算任務在多個線程\進程和服務器之間並行進行,支持靈活的水平擴展.框架
保證spout發出的每條消息都能被徹底處理. Spout發出消息後續可能會觸發產生成千上萬條消息,理解爲消息樹,spout發出的消息爲樹根,storm會跟蹤這棵消息樹的處理狀況,只有這棵消息樹的全部消息都被處理了,storm才認爲spout發出的這個消息已經被徹底處理了. 若是消息樹中任何一個消息處理失敗了,或整棵消息樹在限定的時間內沒有徹底處理,那麼spout發出的消息會重發.機器學習
爲減小對內存的消耗,storm不會跟蹤消息樹中每一個消息,而是將消息樹看成一個總體跟蹤,對消息樹中全部消息的惟一id進行異或運算,經過是否爲0斷定spout發出的消息是否被徹底處理,極大的節約了內存和簡化了斷定邏輯.此處會詳細介紹.nosql
有事務性拓撲保證消息只被處理一次.分佈式
多語言協議容許spout或bolt使用標準輸入輸出進行消息傳遞,消息內容爲單行文本或json編碼的多行文本.
支持本地模式,在進程中模擬storm集羣的全部功能,以本地模式運行topology和在集羣中運行相似,有利於開發測試.
zeroMQ做爲底層消息隊列,保證消息快速處理.
Storm計算任務以拓撲爲基本單位,每一個拓撲完成特定的業務指標,拓撲中的每一個邏輯業務節點實現特定的邏輯,並經過消息相互協做.
配置邏輯節點的併發數
全部部署僅經過命令提交一個jar包,全自動部署,中止拓撲也是命令執行. 可圖形化監控各個拓撲的信息,包括每一個處理單元的狀態和處理消息的數量
海量數據實時處理, 存儲中間結果,寫入數據庫,,重啓恢復容災. 數據增量更新,數據庫實時讀寫壓力. 機率算法使用