天天看點

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配置

  純程式設計

參考文檔

<a href="https://github.com/nathanmarz/storm/wiki/">https://github.com/nathanmarz/storm/wiki/</a>

的中文翻譯)

繼續閱讀