日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

.net core ——微服务内通信Thrift和Http客户端响应比较

發布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .net core ——微服务内通信Thrift和Http客户端响应比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、Benchmark介紹

wiki中有定義:基準測試是運行計算機程序,一組程序或其他操作的行為,以便評估對象的相對性能,通常是通過對其運行許多標準測試和試驗。

目前許多成熟的github開源項目,均采用Benchmark測試結果作為性能依據。在 .net 代碼世界中,當然是使用 BenchmarkDotNet類庫。
其支持 :

  • 編程環境 .NET Framework (4.6+), .NET Core (2.0+), Mono, CoreRT

  • 支持語言: C#, F#, Visual Basic

  • 操作系統: Windows, Linux, macOS
    其可以方便的產生數據和圖表

2、測試下微服務訪問效率

目前我司采用的是Thrift封裝的微服務框架,而時常有聲音想把它轉為Http Api,其實也未嘗不可,不過測試下性能指標,是不是更靠譜些。
說干就干。
因為只有.net core版本,因此其他版本忽略之。
//選擇兩組數據,1000次和10000次訪問

[CoreJob(baseline: true)][RPlotExporter, RankColumn]public class TestAbc{[Params(1000, 10000)]public int N;private Qt2Api api = new Qt2Api(new UserContext{Token = "04100ccc-0ac5-4ec7-ba53-9ad5fcfac2c4"});[GlobalSetup]public void Setup(){ServerSetting.Initlize("abb", 1);SCMBaseServiceRpcProxyManager.Initlize();}//這是thrift rpc調用[Benchmark]public GetListWmsWareHousesResult RpcCall() => CommTools.GetListWmsWareHouses(new RpcContext(null,new Args<object>{tk= "04100ccc-0ac5-4ec7-ba53-9ad5fcfac2c4"}),out StatusCode code);//這是Http api調用[Benchmark]public Nullables ApiCall() => api.Call<Nullables,Nullables>("/mark/Test",new Nullables());}

3、結果


window平臺下,僅有 10ms的差距,說明http api性能還是不錯的!從最大值上看相差20ms。如果對性能要求較高,采用RPC是個不錯的選擇,畢竟查下數據庫也不過幾個ms甚至ns。

總結

以上是生活随笔為你收集整理的.net core ——微服务内通信Thrift和Http客户端响应比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。