items\projects
yahoo! s4
twitter storm
協定
apache license 2.0
eclipse public license 1.0
開發語言
java
clojure,java,clojure編寫了核心代碼
結構
去中心化的對等結構
有中心節點nimbus,但非關鍵
通信
可插拔的通訊層,目前是基于udp的實作
基于facebook開源的thrift架構
事件/stream
<k,a>序列,使用者可自定義事件類
提供tuple類,使用者不可自定義事件類,
但是可以命名field和注冊序列化器
處理單元
processing elements,内置pe處理
count,join和aggregate等常見任務
bolt,沒有内置任務,提供ibasicbolt處理
自動ack
第三方互動
提供api,client adapter/driver,第三方用戶端輸入或者輸出事件
定義spout用于産生stream,沒有标準輸出api
持久化
提供persist api規範,可根據頻率或者次數做
無特定api,使用者可自行選擇處理
可靠處理
無,可能會丢失事件
提供對事件處理的可靠保證(可選)
路由
eventtype + keyed attribute + value比對
内置count,join和aggregate标準任務
stream groupings:
shuffle,fields,all,global,none,direct
非常靈活的路由方式
多語言支援
暫時隻支援java
多語言支援良好,本身支援java,clojure,
其他非jvm語言通過thrift和程序間通訊
failover
部分支援,資料無法failover
部分支援,資料同樣無法failover
load balance
不支援
不支援
并行處理
取決于節點數目,不可調節
可配置worker和task數目,storm會盡量将worker和task均勻分布
動态增删節點
支援
動态部署
web管理
代碼成熟度
半成品
成熟
活躍度
低
活躍
程式設計
程式設計 + xml配置
純程式設計
參考文檔
<a href="https://github.com/nathanmarz/storm/wiki/">https://github.com/nathanmarz/storm/wiki/</a>
的中文翻譯)