Apache Thriftとは?
あぱっちすりふと
Apache Thriftとは、複数のプログラミング言語にまたがるサービス間通信を効率化するための、コード生成ツールとシリアライゼーションフレームワークです。
Apache Thriftは、Facebookが開発しApache Software Foundationに寄贈したRPCフレームワークおよびデータシリアライゼーションライブラリです。IDL(インターフェース定義言語)でサービスのインターフェースとデータ型を記述すると、C++・Java・Python・PHP・Ruby・Go・Rustなど多数の言語向けのクライアント・サーバコードを自動生成します。
Thriftの仕組みは大きく三つの層から構成されています。
- トランスポート層:TCPソケット・HTTPなど通信手段を抽象化する
- プロトコル層:バイナリ・コンパクトバイナリ・JSONなど複数のシリアライゼーション形式を選択できる
- プロセッサ層:IDLから生成されたサーバ側処理のディスパッチ機構
ThriftのIDLは.thriftファイルに記述し、structでデータ型を、serviceでRPCメソッドを定義します。フィールドには番号が付与されており、後方互換性を保ちながらスキーマを進化させることができます。
Google ProtocolBuffers(gRPC)と比較されることが多く、どちらも多言語対応のバイナリRPCフレームワークですが、Thriftはトランスポート・プロトコルの選択肢が豊富で柔軟性が高い一方、gRPCはHTTP/2とProtobufに特化してエコシステムが充実しています。Thriftは大規模なマイクロサービスアーキテクチャを持つ企業(Facebook・Twitter・Evernoteなど)での採用実績があります。
使い方・例文
Thriftを使うと、Javaで実装した検索サービスのAPIをPythonクライアントから型安全に呼び出せるコードが.thriftファイルから自動生成されます。異なる言語で書かれたマイクロサービスを効率よく連携させる場面で活躍します。
この用語をシェア
最終更新: