Apache Thrift を使う 1 - きっかけ

Posted Sun Jun 24 2012

これから何回かにわたって,Apache Thrift について書いていこうと思います.Apache Thrift とはスケーラブルな言語間サービス開発のためにfacebookによって開発された RPC(Remote Procedure Call) フレームワークです.Thrift を使っているサービスとして facebook ,Evernote API,データベースの Apache Casandra などがあります.このフレームワークを利用すると言語間で簡単にRPCを行うことができます.

3ヶ月くらい前から分散処理に興味を持ち,Thrift を使っていました.当時Windows,VCで環境構築をしたのですが,ドキュメントが少なく非常に苦労しました.今回友人が環境構築をしようとしたら,やはり躓いたらしく記事を書くことにしました.

キッカケ

私が作っている装置は結構大きなシステムで,高速な画像処理を必要とします.高速化のために,装置内に複数台のPCをLANでつなぎ重い計算処理をその計算PCにさせ負荷分散し高速化を図っています.そんなこともあって,分散処理に興味を持ちました.

うちの製品はレガシーなシステムでひどく複雑です.実装にはソケットを使ったTCP/IP通信を使用しコマンドとデータを転送し,処理を行わせるということを行なっています.私はネットワーク関係のプログラミングをやったことがほとんどなかったので,ソケットを使って分散処理を1から構築するというのは,ひどく遠い道のりと感じもっと簡単に開発できないかなぁということで,いろいろと調べ始めました.

そこで興味を持ったのが Google Protocol BuffersApache Thrift, REST などです.RESTful な考え方はWEB標準な感じで私はすごく好きです.ただ私が想定していた使用方法は,システムとして閉じたものだったので Thrift が適当と考え利用し始めた感じです.ちょとしたツール作成に使っていますが非常に使い勝手がいいです.次回から環境構築について書きます.

参考:

いろいろな分散処理技術がまとまってます. http://www.atmarkit.co.jp/fjava/special/distributed02/distributed02_1.html