Protocol buffer數據傳遞

Protobuffer大家估計就很少聽說了,但如果說到是google搞的,相信大家都會有興趣去試一下,畢竟google出口,多屬精品。

那麼爲什麼要使用protobuffer呢?

       Protobuf 有如 XML,不過它更小、更快、也更簡單。你可以定義自己的數據結構,然後使用代碼生成器生成的代碼來讀寫這個數據結構。你甚至可以在無需重新部署程序的情況下更新數據結構。只需使用 Protobuf 對數據結構進行一次描述,即可利用各種不同語言或從各種不同數據流中對你的結構化數據輕鬆讀寫。

       它有一個非常棒的特性,即“向後”兼容性好,人們不必破壞已部署的、依靠“老”數據格式的程序就可以對數據結構進行升級。這樣您的程序就可以不必擔心因爲消息結構的改變而造成的大規模的代碼重構或者遷移的問題。因爲添加新的消息中的 field 並不會引起已經發布的程序的任何改變。

        Protobuf 語義更清晰,無需類似 XML 解析器的東西(因爲 Protobuf 編譯器會將 .proto 文件編譯生成對應的數據訪問類以對 Protobuf 數據進行序列化、反序列化操作)。

        使用 Protobuf 無需學習複雜的文檔對象模型,Protobuf 的編程模式比較友好,簡單易學,同時它擁有良好的文檔和示例,對於喜歡簡單事物的人們而言,Protobuf 比其他的技術更加有吸引力。

定義第一個Protocol Buffer消息。

   

限定符(required/optional/repeated)的基本規則。

      1. 在每個消息中必須至少留有一個required類型的字段。
      2. 每個消息中可以包含0個或多個optional類型的字段。
      3. repeated表示的字段可以包含0個或多個數據。需要說明的是,這一點有別於C++/Java中的數組,因爲後兩者中的數組必須包含至少一個元素。
      4. 如果打算在原有消息協議中添加新的字段,同時還要保證老版本的程序能夠正常讀取或寫入,那麼對於新添加的字段必須是optional或repeated。道理非常簡單,老版本程序無法讀取或寫入新增的required限定符的字段。

類型對照表。
               

下面就來說一下使用步驟:

1.首先我們看一下我們寫的proto文件

2.開始使用cmd命令編譯

3.編譯完成之後,會通過包名生成對應的java文件,將文件粘貼到項目中即可使用.


發佈了20 篇原創文章 · 獲贊 24 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章