使用protocolbuffers優缺點分析

一見藍天發表於2010-09-06
很早就聽說過PB(protocol buffers的簡稱),但從未實際地去了解,最近動手對它進行了初步了了解和使用,由於它長得和RPC/IDL相似,加上以前有參與過使用C++實現過RPC的專案經驗,所以容易理解起來比較順暢,網上也有不少基於PB的RPC實現。
為什麼要去了解PB?一是因為它如同MapReduce一樣,屬於Google出品,口碑好也很受歡迎;其次是想將它引入mooon的實現中,問題也就來了,為啥要用它?能帶來什麼好處?會存在什麼問題?

好處顯而易見,網路訊息全丟給它,省去了很多編解碼的麻煩和工作量,而且也易於維護,如果系統需要跨平臺或語言,那非它莫屬了(不和thrift等比)。但是增加了對第三方的依賴,而且是一個比第三庫更強的依賴,因為還需要使用到它的.proto定義和編譯器。雖然它的效率比XML/JSON等高,但肯定比不過直接使用訊息結構。糾結中,最糾結的還是是否需要產生對它的依賴,要知道剛解除對log4cxx的依賴不久。

計劃繼續多瞭解protocol buffers,然後決定是否使用。


相關文章