我的java天地

          各數據交換的協議優劣比較

          @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

          如何選擇數據交換協議

            選擇什么樣的協議跟我們的應用場景有很大的關系。我們需要考慮我們開發是否方便、接口是否容易發布、是否需要考慮帶寬占用成本、序列化和反序列化的性能、接口協議的擴展性等等。下面我們看下幾個比較常用的交換協議實現。

          協議 實現 跨語言 性能 傳輸量 RPC
          xml 廣泛 幾乎所有 很大 N(可實現)
          json 廣泛 大量 一般 一般 N(可實現)
          php serialize PHPRPC 大量 一般 一般 Y
          hessian hessian 大量 一般 Y
          thrift thrift 大量 Y
          protobuf protobuf 大量 N(可實現)
          ice ice 大量 Y
          avro Apache Avro 少量 Y
          messagepack messagepack 大量 Y

            上面表格列出了一些常用數據交換協議的一些特性的比較。這里并沒有比較好壞,只是想說明不同數據交換協議是有區別的,所以我們需要在我們的應用場景中進行選擇。

           messagepack相關資料

          http://pluto418.iteye.com/blog/1108457
          優勢:
          1.序列化和反序列化所需要的時間少。通過30000條的記錄來測試,msgpack序列化的時間比使用jason來序列化JSON的時間要少三分之一;而反序列化的時間則要少一半。
          2.生成的文件體積小。同樣也是基于30000條記錄來測試,msgpack序列化后生成的二進制文件比用jason序列化出來的時間要少一半。

          劣勢:
          1.msgpack對復雜的數據類型(List、Map)支持的不夠,序列化沒有問題,但是反序列化回來就很麻煩,尤其是對于java開發人員。
          2.在上面也提到過,msgpack是通過value的順序來定位屬性的,那么需要在不同的語言中都要維護同樣的模型以及模型中屬性的順序。這個會讓開發人員很困擾。
          3.msgpack無法支持在模型中包含和嵌套其他自定義的模型(如weibo模型中包含comment的列表)。

          @import url(http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

          posted on 2011-12-26 10:57 tobyxiong 閱讀(18829) 評論(0)  編輯  收藏 所屬分類: java

          <2011年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(144)

          隨筆檔案(157)

          相冊

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 太康县| 辽中县| 于都县| 股票| 大洼县| 泸水县| 读书| 台中县| 吕梁市| 秀山| 伊金霍洛旗| 万山特区| 乳源| 航空| 略阳县| 安宁市| 上虞市| 湖口县| 五家渠市| 安泽县| 师宗县| 仙游县| 怀宁县| 牙克石市| 芒康县| 霍邱县| 金华市| 古交市| 炎陵县| 朔州市| 塔河县| 丰宁| 普兰店市| 县级市| 廊坊市| 喀喇沁旗| 石首市| 宁城县| 桦甸市| 多伦县| 翁牛特旗|