分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

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

发布时间:2023-09-06 02:30责任编辑:白小东关键词:暂无标签
原文:.net core ——微服务内通信Thrift和Http客户端响应比较

???????????

目录

  • 1、Benchmark介绍
  • 2、测试下微服务访问效率
  • 3、结果
  • 引用链接

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。


在此我向大家推荐一个微服务架构学习交流群。交流学习群号:864759589 ?里面会分享一些资深架构师录制的视频录像:高并发、高性能、分布式、微服务架构的原理,分布式架构等这些成为架构师必备的知识体系。


引用链接

  1. 口袋代码仓库
  2. 在线计算器
  3. 本节源码:github
???????????

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

原文地址:https://www.cnblogs.com/lonelyxmas/p/10286287.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved