如题,之前都是安卓和 IOS 基本都是通过 HTTP 的形式与服务端通信的
想了解下如果使用 GRPC 通信的话会有什么劣势吗?
因为接口定义可以直接通过 protobuf 来定义,避免前后端之间频繁的沟通接口字段细节,感觉挺方便的。
1
shoaly 2022-02-25 06:47:00 +08:00
感觉老哥混着在说, 如果不想用 http 换成 grpc , 通常用 grpc 是为了解决 http 只能单向通信的问题, 也就是从 http 降级成为 tcp, 支持双向通信了..... 和消息报文格式没关系
再说报文编码, json 和 protobuff, 其实 protobuff 的申明方式确实有一些优势, 能解决报文中各种字段 , 但是需要前后端都认可把, 如果前端同事还是愿意 json 哈索, 也无可厚非, 因为 json 格式调试起来, 人眼更直观 |
2
jorneyr 2022-02-25 08:27:18 +08:00
高负载时负载均衡比较麻烦。
|
3
xuanbg 2022-02-25 08:55:22 +08:00
也没啥,就是需要客户端支持 gRPC 而已。。。用 http 呢,就不需要考虑这个问题。
|
4
Macolor21 2022-02-25 09:11:49 +08:00 via iPhone
graphql 更适合
|
5
letitbesqzr 2022-02-25 10:00:50 +08:00
调试麻烦
|
7
thevita 2022-02-25 10:41:19 +08:00
1. 最大的劣势就是会不停有人问:"为什么不用 http"
2. 调试确实不方便,工具链+人员培训 |
8
oneegg 2022-02-25 10:41:35 +08:00 via iPhone
Grpc 和 http2 的关系
|
9
thevita 2022-02-25 10:49:04 +08:00
其实如果只是为了解决 "频繁的沟通接口字段细节", 可以一步步来比如
1. protobuf-over-http 2. 用 gRPC-Gateway, grpc 和 rest 共存 |
10
mxT52CRuqR6o5 2022-02-25 10:58:38 +08:00
如果只用 grpc 通信,以后如果要做 web 端,就得再写一份 http 版本的
而且 http 对接各种 cdn 不会有问题,grpc 接入就可能有限制 |
11
iugo 2022-02-25 11:23:14 +08:00
做 Web 开发和小程序开发会麻烦, 前后端均需要 (可参考 gRPC Web) 做额外的操作.
|
12
HanMeiM OP protobuf-over-http
其实有想过,我知道 web 前端有相关的开源项目,但是客户端我不清楚有没有 而且也没打算写 web ,计算写 web ,那多半是官网,和客户端的代码可以不重合 |
13
zoharSoul 2022-02-25 17:53:04 +08:00
我试过 android 上的, 还挺方便.
pb 文件放到对应目录就自动编译生成代码了. 比 go 的体验好多了 |
14
kwanzaa 2022-02-25 19:48:24 +08:00
劣势就是你要说服人。
|