发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

开源ScalaStorm

         
2013-11-12 16:59
赞助商链接

velvia/ScalaStorm · GitHub

scalaStorm提供一个基于Storm的Scala DSL,进行实时分布式计算,也提供开发Storm topology的Scala和SBT框架。

经典的单词计数topology代码SplitSentence 如下:
class SplitSentence extends StormBolt(outputFields = List("word")) {
def execute(t: Tuple) = t matchSeq {
case Seq(sentence: String) => sentence split " " foreach
{ word => using anchor t emit (word) }
t ack
}
}


相比使用Java要简单多,见Storm使用介绍:http://www.jdon.com/bigdata/storm.html

好处:
1. 使用matchSeq DSL 能够激活 Scala 基于tuple的模式匹配,这给你一个多么好的命名和标识每个组件的方式,想象一下匹配不同类型的tuple,象一个join, 容易灵活。

2.发送DSL 读起来象英文,易于携带多个参数(val1, val2, ...)

3.输出字段易于声明

4.当发射和确认发生时,易于精准观察到。

对Scala程序员有用特性:
Auto-boxing of Scala primitives in tuple emit and matchSeq
BoltDsl trait能对thread/actor/class都使用DSL

storm      scala     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com