置顶: 发现一篇文章, share 一下 我们为什么从 REST 转向 gRPC
作为后端开发, 你是否有考虑过这个问题:明明已经有http+restful api + json了,为什么还要上各种rpc框架?
举个简单的例子,以查户口为例:
http + json的形式:
我们写一个http server, 就提供一个接口 GET /persion ,然后返回
···
{
"name":"xiaoerhei",
"age": "28"
}
grpc+pb(非常不准确的格式,意会即可):
name|xiaoerhei|age|28
- 少了很无用的http头
- 少了json很多无用的分隔符
- pb序列化和反序列化的性能比比json高很多
在树莓派上做了简单的对比测试, golang + grpc + pb的方式 比 golang + http server+ json的形式,QPS可以高5~10倍。