什麼是ProtoBuf?
一種輕便高效的結構化資料儲存格式,可以用於結構化資料序列化,或者說序列化。它很適合做資料儲存或 RPC 資料交換格式。可用於通訊協議、資料儲存等領域的語言無關、平臺無關、可擴充套件的序列化結構資料格式。目前提供了 C++、Java、Python 三種語言的 API。
它可以作為RabbitMQ的Message的資料格式進行傳輸,由於是結構化的資料,這樣就極大的方便了Consumer的資料高效處理。當然了你可能說使用XML不也可以嗎?與XML相比,ProtoBuf有以下優勢:
- 簡單
- size小了3-10倍
- 速度快樂20-100倍
- 易於程式設計
- 減小了語義的歧義
當然了,的確還有很多類似的技術,比如JSON,Thrift等等,和他們相比,ProtoBuf的優勢或者劣勢在哪裡?簡單說來,ProtoBuf就是 簡單,快。以測試為證:專案 thrift-protobuf-compare 比較了這些類似的技術,下圖 顯示了該專案的一項測試結果。
在佔用空間上的效能比較:
由此可見,ProtoBuf具有速度和空間的優勢,使得它現在應用非常廣泛。比如Hadoop就使用了它。
更多資訊,請閱 http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/。
轉:
http://blog.csdn.net/anzhsoft/article/details/19771671