天天看点

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>

的中文翻译)

继续阅读