分散リアルタイム処理フレームワーク Storm(その2)

今回は、Stormの構成要素について見てます。

Stormのコンセプトとしては、以下の要素が登場します。

  • Streams
  • Spouts
  • Bolts
  • Topologies

それぞれ、以下のようなモノを指しています。


Streams

Streamとは、途切れずに連続するTuple(タプル:処理するメッセージを保持するStormのデータ構造)を意味します。

Spouts

Spoutは、Streamのソースとなるものであり、Tupleを送り出すことが役割です。
Twitter APIで、メッセージを読み込む部分などがそれに該当します。
backtype.storm.spout.ISpout インタフェースを実装します。

Bolts

Boltは、Streamの変換処理を行います。単一、または、複数のStreamからTupleを受信し、加工した上で、新たなStreamにメッセージを送信します。
関数処理、フィルタ、Aggregation、Join、DBとの処理などを行うことになります。
backtype.storm.topology.IBasicBolt インタフェースを実装します。

Topologies

Topologyは、Spout、Boltからなるネットワーク構造を示します。


こうして見てみると、非常にシンプルな構成ですね。
Boltの処理などは、実案件ではもっと複雑になると思いますが、複数のノードで連携できるため、
機能も分けやすく、スケーラビリティも確保しやすいと思います。

Stormでは、SpoutとBoltの処理を実装すれば、リアルタイムに処理を行うことが、簡単に実現できるようになるはずです。


以下の内容を見ると、より詳細が分かります。