使用其余语言编写Bolt
html
Bolt可使用任意语言编写。用另一种语言编写Bolt来做为子进程运行。Storm会在标准输入输出的基础上使用Json来与子进程通讯。通讯协议之须要一个100行的适配器库,Storm自带了Ruby,Python,和Fancy的适配器库。java
下面是WordCountTopology中SplitSentence的定义:python
public static class SplitSentence extends ShellBolt implements IRichBolt { public SplitSentence() { super("python", "splitsentence.py"); } public void declareOutputFields(OutputFieldsDeclarer declarer) { declarer.declare(new Fields("word")); } }
SplitSentence集成了ShellBolt而且经过"splitsentence.py"参数来指定使用python来运行。下面是splitsentence.py的具体实现:apache
import storm class SplitSentenceBolt(storm.BasicBolt): def process(self, tup): words = tup.values[0].split(" ") for word in words: storm.emit([word]) SplitSentenceBolt().run()
更多的关于使用其余语言写Spout和Bolt的信息,以及了解如何使用其余语言(彻底避免使用JVM)建立Topology,查看Using non-JVM languages with Storm。分布式
保证消息处理测试
前文中咱们调过了一些关于元组如何发射的概念。这些概念是Storm 可靠性的 一部分:Storm是如何保证每一个消息被彻底难处理的。阅读 Guaranteeing message processing一文来了解它是如何工做的,并且做为一个使用者应该如何利用Storm的可靠性。spa
事物Topology翻译
Storm保证每一个消息都会被Topology处理至少处理一次。一个常见的问题是 “如何熟练使用Storm进行计数?会不会重复计数?”Storm有一个叫事物Topology的特性让你在大多数计算中精确处理消息。点击这里获取更多的关于事物Topology的信息。code
分布式RPCorm
本文档介绍了如何熟练使用Storm作基本的流处理。你还可使用Storm作更多的事情。Storm中一个比较有意思的程序是分布式RPC,你可使用它来进行并行计算。点击这里获取更多的关于分布式RPC的信息。
总结
本手册提供了开发、测试和不是Storm Topology的概览,其余的文档将更深刻的了解Storm使用的各个方面
译者语
通过多半天的努力,终于完成了文档的翻译,后续会继续带来更多的技术翻译,如Zookeeper,Spark,Kafa等。文中如有翻译不妥之处,望指正,你们共同进步