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

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

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

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

“还可以直接把图片和文字一起传输不用 base64 浪费带宽”
你到底是想省带宽还是浪费带宽?但凡考虑点体验和带宽都会选择把图片放 cdn 吧
tyc
364 天前
@louiswong2099 突破我认知了,我一直了解的都是在服务器内部大量使用的是 RPC
SmiteChow
364 天前
有没有可能 grpc 底层其实是 http ?
hxzhouh1
364 天前
Grpc 没有你想的那么好, 取代不了 HTTP ,为什么会有 GRPC-WEB 这个项目?
https://kmcd.dev/posts/grpc-the-bad-parts/

https://taoshu.in/grpc-trailers.html
unco020511
364 天前
http 不是一样可以用 protobuf 吗
hxzhouh1
364 天前
duduke
364 天前
单链接在弱网下,智障得很,所有请求全部阻塞
sunny352787
364 天前
用 http 一个是开发方便,不用配置协议文件直接处理 json 就好,另一个是对于目前的云服务提供商来说,http 的支持比 grpc 好很多,包括负载均衡、DDOS 防御、流量清洗等

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

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

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

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

© 2021 V2EX