paulwong

          不得不承認Zeroc Ice是RPC王者: 完爆Dubbo,Thrift,谷歌RPC

          ice-dubbo-thrift-grpc性能測試對比,本次測試過程中還發現了一個支付寶的秘密,附件文檔中會詳細說明。
          測試說明
              本測試只是個人為了對rpc進行技術選型,測試可能不夠嚴謹,對某些rpc的參數可能也不是最優,如果你知道更優的參數配置或者改進意見等,歡迎反饋給我magicdoom@gmail.com。另外代碼有些地方只是為了測試方便,不作為平時編程的范例。所有測試源碼和運行均一起提供在附件里。
              測試源碼工程可用idea打開,其中dubbo,grpc需要maven支持。運行只需要運行對應bat腳本。如果想測試更多場景,可以直接改腳本的并發數和調用次數。  

          測試人
          南哥   mycat核心commiter     http://mycat.io/

          系統環境                              
          Jdk:jdk1.8.0_51x64
          Ice:ice3.6
          Dubbo:dubbox 2.8.4
          Thrift:0.9.2
          Grpc:0.7.1
          測試結果1客戶端測試結果如下所示:
            
          Rpc
            
          并發客戶端
          每客戶端調用次數
          總調用次數
          執行時間
          每秒調用數tps
          ice
          1
          300000
          300000
          16s
          18329
          dubbo
          1
          300000
          300000
          52s
          5675
          thrift
          1
          300000
          300000
          23s
          12832
          grpc
          1
          300000
          300000
          77s
          3896
          從數據可以看出ice,thrift的tps最高,ice是thrift的1.4倍,是dubbo的3.2倍,是grpc的4.7倍
          5客戶端并發測試結果如下所示:
            
          Rpc
            
          并發客戶端
          每客戶端調用次數
          總調用次數
          執行時間
          每秒調用數tps
          ice
          5
          300000
          1500000
          20s
          71575
          dubbo
          5
          300000
          1500000
          77s
          19371
          thrift
          5
          300000
          1500000
          31s
          47041
          grpc
          5
          300000
          1500000
          95s
          15722
          從數據可以看出ice,thrift的tps最高,ice是thrift的1.5倍,是dubbo的3.6倍,是grpc的4.5倍
          20客戶端并發測試結果如下所示:
            
          Rpc
            
          并發客戶端
          每客戶端調用次數
          總調用次數
          執行時間
          每秒調用數tps
          ice
          20
          300000
          6000000
          68s
          87375
          dubbo
          20
          300000
          6000000
          256s
          23354
          thrift
          20
          300000
          6000000
          94s
          63708
          grpc
          20
          300000
          6000000
          382s
          15675
          從數據可以看出ice,thrift的tps最高,ice是thrift的1.3倍,是dubbo的3.7倍,是grpc的5.5倍
          50客戶端并發測試結果如下所示:
            
          Rpc
            
          并發客戶端
          每客戶端調用次數
          總調用次數
          執行時間
          每秒調用數tps
          ice
          50
          300000
          15000000
          165s
          90679
          dubbo
          50
          300000
          15000000
          676s
          22157
          thrift
          50
          300000
          15000000
          255s
          58765
          grpc
          50
          300000
          15000000
          987s
          15186
          從數據可以看出ice,thrift的tps最高,ice是thrift的1.5倍,是dubbo的4倍,是grpc的5.9倍
          100客戶端并發測試結果如下所示:
            
          Rpc
            
          并發客戶端
          每客戶端調用次數
          總調用次數
          執行時間
          每秒調用數tps
          ice
          100
          300000
          30000000
          361s
          83014
          dubbo
          100
          300000
          30000000
          1599s
          18760
          thrift
          100
          300000
          30000000
          597s
          50211
          grpc
          100
          300000
          30000000
          2186s
          13721
          從數據可以看出ice,thrift的tps最高,ice是thrift的1.6倍,是dubbo的4.4倍,是grpc的6倍
          總結
              從測試結果可以看出ice的tps遙遙領先,而且并發越高tps比其他越高,其次thrift,而dubbo和grpc則差了很多。Grpc最差估計跟用了HTTP2有關。從功能完備性來說ice和dubbo都算比較完備,都有大型生產案例,thrift的服務化功能比較缺失,grpc可能還不夠成熟。
              Dubbo的插件化機制的確不錯,ice初次接觸有些概念比較晦澀,經過封裝和有詳細的資料后要好上許多。另外dubbox還支持rest,官方測試rest比kyro要慢1.5倍,本次未對rest測試。
              另外《Zeroc Ice權威指南》作者Leader-us對ice的測試結果如下:
          Leader-us測試結果Ice則是2.5萬,性能差不多是Avro的一倍,綜合起來看Avro和thrift的性能應該差不多。

          本帖只摘錄了一部分內容,完整測試報告以及源碼詳見附件的word文檔。
          由于論壇限制,完整文檔下載http://pan.baidu.com/s/1eQIY9xg,文檔比較大因為包含了源碼和運行程序
          如果百度云的連接失效,請到mycat的qq群共享里下載,群號:228044360

          posted on 2015-11-13 16:19 paulwong 閱讀(14264) 評論(2)  編輯  收藏 所屬分類: Zeroc Ice

          Feedback

          # re: 不得不承認Zeroc Ice是RPC王者: 完爆Dubbo,Thrift,谷歌RPC 2016-06-03 14:10 任國強

          搜thrift搜到這里來了,看了看原來還有神器啊,留個腳印吧!
          博客園咋就不能把.net和java的賬號打通呢。我想終有一天會打通的。
          等了這么多年,兩個QQ丟了一個之后,才發現:呀!QQ終于能合并多個QQ號一塊登錄了,可惜我也就一個了。哈哈哈,造化弄人啊!
            回復  更多評論   

          # re: 不得不承認Zeroc Ice是RPC王者: 完爆Dubbo,Thrift,谷歌RPC 2019-09-24 10:19 NewSea

          學習  回復  更多評論   



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 栾川县| 安仁县| 鲁山县| 离岛区| 无锡市| 商河县| 黔江区| 德昌县| 延吉市| 措勤县| 鄂托克旗| 平南县| 洪洞县| 岳阳市| 韶关市| 镇雄县| 察隅县| 庆安县| 阳泉市| 蒲江县| 甘肃省| 明星| 兴安盟| 齐齐哈尔市| 新昌县| 宁晋县| 嘉黎县| 楚雄市| 彭州市| 孝义市| 尼玛县| 江源县| 黄陵县| 项城市| 克什克腾旗| 苍梧县| 宜君县| 孟连| 浙江省| 平武县| 临沧市|