分散リアルタイム処理フレームワーク Storm(その2)
今回は、Stormの構成要素について見てます。
Stormのコンセプトとしては、以下の要素が登場します。
- Streams
- Spouts
- Bolts
- Topologies
それぞれ、以下のようなモノを指しています。
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の処理を実装すれば、リアルタイムに処理を行うことが、簡単に実現できるようになるはずです。
以下の内容を見ると、より詳細が分かります。