接下來項目中會用到thrift:一個跨平臺,支持多語言的,通過定義IDL文件,自動生成RPC客戶端與服務端通信代碼的工具(談不上框架,後面學習中會記錄下thrift學習相關的東西)
在查找thrift學習資料中,瞭解到與之類似的有google的protocol buffer,以及avro。
protocol buffer剛查找了一些資料,瞭解了下,pb是一種序列化與結構化數據的一種機制,具有跨平臺、解析速度快、序列化數據體積小、擴展性高、使用簡單的特點。pb相對於thrift 而言,是沒有RPC代碼自動生成的,但是官方提供RPC接口可供實現。 另外PB的序列化數據的體積在傳輸過程中相對於thrift也有一定的優勢,相對於thrift的TCompactProtocol協議,PB的傳輸效果有一點點的優勢,但是TCompactProtocol協議比PB在協議與其它方式產生的運行開銷以及CPU與平均處理時間上,thrift的TCompactProtocol協議效果更好些。
相比thrift ,PB,avro可以提供簡單的動態語言結合功能,Avro和動態語言結合後,讀寫數據文件和使用RPC協議都不需要生成代碼,而代碼生成作爲一種可選的優化只值得在靜態類型語言中實現。
avroj是一個數據序列化的系統,提供的特性如下:
( 具體avro與動態語言結合的特性,有時間會去研究下。)
下面是pb的一篇文章,以及google官方指南的地址,記下來,接下來會去了解學習。
介紹protocol buffers的一篇文章:
http://www.searchtb.com/2010/11/protocol-buffers%E7%9A%84%E5%BA%94%E7%94%A8%E4%B8%8E%E5%88%86%E6%9E%90.html
官方指南:
http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/proto.html
thrift接下來學習中會陸續更新。