使用其餘語言編寫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等。文中如有翻譯不妥之處,望指正,你們共同進步