Items\Projects
Yahoo! s4
Twitter Storm
协议
Apache license 2.0
Eclipse Public License 1.0
开发语言
Java
Clojure,Java,Clojure编写了核心代码 结构
去中心化的对等结构
有中心节点nimbus,但非关键 通信
可插拔的通讯层,目前是基于UDP的实现 基于twitter开源的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/ (非常好的中文翻译)
项目主页:https://github.com/nathanmarz/storm
具有下关键属性:
1.广泛的应用场景:可以用于消息处理和数据库更新(stream processing),可以针对数据流进行持续查询并将结果推送给客户端(continuous computation),可以用来并行化重量级查询操作比如一个实时的搜索请求(distributed RPC)等等方面。