Yahoo! s4和Twitter storm的粗略比較
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配置 | 純編程 |
參考文檔 | http://docs.s4.io/ | https://github.com/nathanmarz/storm/wiki/ http://xumingming.sinaapp.com/category/storm/ (很是好的中文翻譯) |