我所在的公司使用Thrift作為基礎通信組件,相當一部分的RPC服務基于Thrift框架。公司的日UV在千萬級別,Thrift很好地支持了高并發訪問,并且Thrift相對簡單地編程模型也提高了服務地開發效率。
Thrift源于Facebook,目前已經作為開源項目提交給了Apahce。Thrift解決了Facebook各系統的大數據量傳輸通信和內部不同語言環境的跨平臺調用。
Thrift的官方網站: [http://thrift.apache.org/](http://thrift.apache.org/)
作為一個高性能的RPC框架,Thrift的主要特點有
1. 基于二進制的高性能的編解碼框架
2. 基于NIO的底層通信
3. 相對簡單的服務調用模型
4. 使用IDL支持跨平臺調用
這張圖來自[《深入淺出RPC - 深入篇》](http://blog.csdn.net/mindfloating/article/details/39474123) 描述了一個RPC框架的基本組件,包括服務器端發布和調用服務組件,NIO組件,協議和編解碼組件,客戶端調用組件,客戶端代理組件等等

對照這個模型,Thrift的核心組件有:
TProtocol 協議和編解碼組件
TTransport 傳輸組件
TProcessor 服務調用組件
TServer,Client 服務器和客戶端組件
IDL 服務描述組件,負責生產跨平臺客戶端
這個系列會結合源碼,深入分析Thrfit的RPC調用模型和核心組件