• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Sheppard Y

            keep thinking keep coding.

            網(wǎng)絡通信序列化協(xié)議的選擇

            2016-07-03 日更新 
            此篇博客已經(jīng)遷移到新博客,并做行文檢查和優(yōu)化排版:
            http://blog.clawz.me/2012/09/21/12-chose-protobuf/

             



            一、背景介紹

                由于歷史原因,使用了兄弟公司的框架,導致之前的通信序列化協(xié)議強制用的JSON。我們項目為一個web項目,前端as,后端php+java,一開始只有as與php短連接,后來為了一些邏輯的實時消息,加了java來另作的長連接。

                as與php都是弱類型的語言,用JSON來序列化,網(wǎng)絡通信邏輯可以寫的很隨意,這導致我們現(xiàn)在查問題非常棘手。另外JSON也浪費了些流量。現(xiàn)在項目在擴展手機前端,對流量的要求更苛刻。為了新老問題的選擇,我們就要換掉JSON。

             

            二、序列化協(xié)議選擇的考慮

                手機前端使用C++寫的邏輯,我們協(xié)議的要求為跨語言、跨平臺、體積小、序列化和反序列化快。

                可供選擇的協(xié)議有protobuf/thrift/messagepack等。

            1. thrift的學習成本貌似比protobuf高些,另外先看的protobuf,感覺兩種協(xié)議差不多,就懶的繼續(xù)研究thrift了。

            2. protobuf和messagepack的取舍:

                兩種皆是開源項目。

            (1)protobuf是google主持的,已經(jīng)被google自己和業(yè)內(nèi)大規(guī)模使用了,證明是可靠的;而messagepack貌似出來的比較晚,還沒被大規(guī)模使用。

            (2)語言支持,protobuf官方原生支持C++、Java、python,其他均為第三方擴展;messagepack官方支持C++、Java、php,不支持as,但支持js。

            (3)protobuf有個編譯器可以自動生成各語言對應版本的協(xié)議類;messagepack在強類型如java和C++里就需要自己寫各個語言版本的了。

            (4)體積方面,messagepack的體積應該比protobuf稍大。

            (5)速度方面,messagepack官方說速度是protobuf的4倍,但是看他的測試只是一種語言的序列化測試。

            (6)其他,messagepack也支持key-value方式的序列化,號稱體積小的JSON。這雖很容易移植以前的協(xié)議,為了快速出demo,我也都準備用messagepack先期試改了,但是猛然發(fā)現(xiàn)每個語言還是得寫各自的,而且現(xiàn)在涉及到兩種不同前端,一段的修改還需及時通知另一前端做相應修改。這種太難控制了,沒有protobuf的proto文件那種的一致性保證。

             

            三、最終選擇

                綜合以上的比較,最后選擇了protobuf來作為我們項目新的網(wǎng)絡通信序列化協(xié)議。

            ps:2012年9月21日我在CU上的博文

            posted on 2013-04-08 17:56 Sheppard Y 閱讀(1327) 評論(0)  編輯 收藏 引用 所屬分類: 設計架構(gòu)

            <2013年4月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            導航

            統(tǒng)計

            留言簿(1)

            隨筆分類(77)

            隨筆檔案(58)

            me

            基友

            同行

            業(yè)界前輩

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久精品国产网红主播| 77777亚洲午夜久久多喷| 久久久综合香蕉尹人综合网| 国产999精品久久久久久| 国产高清美女一级a毛片久久w| 久久久久久无码国产精品中文字幕| 久久青青国产| 精品久久久久久中文字幕| 久久婷婷色综合一区二区| 久久亚洲精精品中文字幕| 久久93精品国产91久久综合| 精品久久亚洲中文无码| 久久国产福利免费| 国产三级久久久精品麻豆三级 | 久久综合亚洲欧美成人| 精品国产婷婷久久久| 新狼窝色AV性久久久久久| 久久亚洲2019中文字幕| 久久亚洲国产欧洲精品一| 午夜天堂av天堂久久久| 三级片免费观看久久| 青青青国产精品国产精品久久久久 | 一本色综合久久| 亚洲伊人久久大香线蕉苏妲己 | 久久天天躁狠狠躁夜夜不卡| 99久久综合国产精品二区| 久久w5ww成w人免费| 久久精品中文无码资源站| 久久青青草原亚洲av无码| 国产精品免费久久久久电影网| 国产精品久久亚洲不卡动漫| 国产精品女同久久久久电影院| 亚洲中文字幕无码久久精品1| 国产香蕉久久精品综合网| 亚洲国产成人久久综合野外| 四虎国产精品免费久久| 欧美激情精品久久久久久| 婷婷久久综合九色综合绿巨人| 久久免费国产精品| 亚洲精品无码久久久久AV麻豆| 久久久久无码精品国产app|