续:Grpc over http2 PK WebApi over http2
Posted netcore技术生态分享
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了续:Grpc over http2 PK WebApi over http2相关的知识,希望对你有一定的参考价值。
上篇我们做了win10环境下的测试,下面是我在Ubuntu18下测试的结果,当然,在Ubuntu下测试会麻烦点,比如证书,以及Ubuntu下如何发布打包程序等问题。今天我们先看看测试结果,Ubuntu下使用vscode作为开发工具,以后会做专题来讲。
测试环境:
Operation System: Ubuntu 18.04.2 LTS
CPU:
Intel(R)Core(TM)i7-7700CPU@3.60GHz,1physical
processor;4cores;8threads
RAM:32GB
测试所得数据
1000 千次请求
1 GRPC Test, 2 WebApi2 Test, 3 WebApi1 Test
1
GRPC takes:218毫秒
1 GRPC Test, 2 WebApi2 Test, 3 WebApi1 Test
2
177毫秒 :
10000 一万次请求
1 GRPC Test, 2 WebApi2 Test, 3 WebApi1 Test
1
GRPC takes:2000毫秒
1 GRPC Test, 2 WebApi2 Test, 3 WebApi1 Test
2
WebApi2 takes:1770毫秒
100000 十万次请求
1 GRPC Test, 2 WebApi2 Test, 3 WebApi1 Test
1
GRPC takes:20788毫秒
1 GRPC Test, 2 WebApi2 Test, 3 WebApi1 Test
2
WebApi2 takes:17800毫秒
1000000 百万次请求
1 GRPC Test, 2 WebApi2 Test, 3 WebApi1 Test
1
GRPC takes:212276毫秒
1 GRPC Test, 2 WebApi2 Test, 3 WebApi1 Test
2
WebApi2 takes:181279毫秒
总结:
在netcore3.0下,目前Grpc over http2 和Webapi over http2的性能差别并不大,Webapi over http2的性能稍好点,单次请求所损耗的时间都是在0.2ms左右,非常稳定。
在编码效率方面,肯定是Webapi的效率更胜一筹,而且其还有swagger等工具,以及完善的限流和负债均衡方案等等,所以笔者更倾向在项目中使用Webapi over http2方案。
以后会介绍一款框架,根据swagger文档生成httpclient客户端的代码库。
谢谢关注!
以上是关于续:Grpc over http2 PK WebApi over http2的主要内容,如果未能解决你的问题,请参考以下文章
Node JS:双向 GRPC 调用会打开多个 http2 连接吗?
GRPC 服务器上的 JMeter 测试:服务器端异常:io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2Exception
GRPC 在 Cloud Foundry 中如何工作? GoRouter 不支持 HTTP2