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>
的中文翻译)