gRPC 和普通 HTTP API 哪个更适合 APP 客户端与服务器通信?为什么大部分 APP 都还在使用传统 HTTP API?

10 小时 40 分钟前
 drymonfidelia
1028 次点击
所在节点    程序员
14 条回复
hefish
10 小时 22 分钟前
因为大部分 app 开发是 sb ,只有用 grpc 的才是正常开发。
我也是 sb 。
kk2syc
9 小时 43 分钟前
因为大部分 APP 用不到 gRPC 带来的性能提升,反而提高了因为开发维护的难度。都是草台班子,规范的 http-api 就不错了,更别提还有用纯 text 做接口的。(只返回 OK 、ERROR 字符串)
tool2dx
9 小时 17 分钟前
gRPC 对比来说,和 json 或者 xml 都不一样,不是自解释的,必须要搭配着 protocol 文件一起用,就挺麻烦的。
也有可能是大部分开发项目,都在实现功能阶段,远远没有达到优化阶段。
flyqie
8 小时 53 分钟前
其实我更想问你为什么会觉得应该用 grpc 而不是 http?
fpk5
8 小时 35 分钟前
grpc 是二进制的,可能在调试的时候比较麻烦?
louiswong2099
8 小时 27 分钟前
grpc 还没有 http api 应用的那么广泛,但是可以在服务器内部之前大量使用。
drymonfidelia
8 小时 24 分钟前
@flyqie HTTP2 可以复用连接,结合 protobuf 压缩效率高提升弱网体验,传输的是二进制没有编码问题,还可以直接把图片和文字一起传输不用 base64 浪费带宽
akira
7 小时 52 分钟前
你缺这点带宽么。。
wangritian
7 小时 32 分钟前
传统 api 也可以 h2
你会问这个问题肯定也用不到 protobuf 对比 json 的提升
你非要图片文字一起传?更不用说对象存储
唯一考虑点就是你要不要服务器主动推数据,一般也是走系统推送
drymonfidelia
5 小时 50 分钟前
@akira 弱网环境下少传 1kb 都能提升体验
fox0001
2 小时 39 分钟前
一般使用 http 。主要是因为 grpc 是保持连接的,服务器的连接数是有限制的,使用 grpc 会导致限制了客户端数量。

重点还是根据实际情况而定。
RightHand
1 小时 49 分钟前
要保持长连接,弱网不行,闪断不行。为什么要用这个 xx 玩意
musi
1 小时 8 分钟前
@drymonfidelia #7
“HTTP2 可以复用连接”
你都说是 HTTP2 了,http api 用不了吗?

“结合 protobuf 压缩效率高提升弱网体验”
protobuf 的压缩效率比 gzip 高多少你测试过吗?

“还可以直接把图片和文字一起传输不用 base64 浪费带宽”
你到底是想省带宽还是浪费带宽?但凡考虑点体验和带宽都会选择把图片放 cdn 吧
tyc
1 分钟前
@louiswong2099 突破我认知了,我一直了解的都是在服务器内部大量使用的是 RPC

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1083393

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX