【发布时间】:2013-06-17 08:07:19
【问题描述】:
我正在设计一个原型实时监视器,用于处理相当大量(>30G/天)的流式数字数据。我想用 Clojure 写这个,因为这种语言似乎很适合这种“观察者 + 状态机”系统,这可能最终会成为。
我为框架找到的两个主要候选者是 Lamina 和 Storm。还有 Riemann 和 Pulse,但前者似乎更像是一个完整的解决方案而不是一个框架,我宁愿不承诺最终设计; Pulse 的 repo 看起来有点无人维护?
我想知道的是;这两个项目针对什么样的数据和工作流程进行了优化? Storm 似乎更成熟,但 Lamina 似乎更易于组合和“Clojureic”(我的背景是 Python,所以我倾向于给它很高的评价)。
我从网上阅读的发现:
Storm 似乎专注于大数据(流),核心是带有 Clojure DSL 的纯 Java。它似乎为许多现有数据源预先构建了处理程序。
Lamina 更像是一个轻量级、可重用的组件,它执行 Clojure 对抽象进行编码的事情,这意味着它可以是 reused as a base for other eventing systems。数据源需要在代码中处理。
两者都有一组有用的聚合/拆分/计算库函数开箱即用。 Lamina 的 graphviz 集成很不错。
【问题讨论】:
标签: events clojure apache-storm stream-processing lamina-clojure