.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

  其可以方便的产生数据和图表

  

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

  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

  {

  tk="04100ccc-0ac5-4ec7-ba53-9ad5fcfac2c4"

  }),out StatusCode code);

  //这是Http api调用

  [Benchmark]

  public Nullables ApiCall()=> api.Call("/mark/Test",new Nullables());

  }

  3、结果

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

  window平台下,仅有 10ms的差距,说明http api性能还是不错的!从最大值上看相差20ms。如果对性能要求较高,采用RPC是个不错的选择,毕竟查下数据库也不过几个ms甚至ns。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值