我们真的需要 gRPC 吗?

2023-02-24 09:39:40 +08:00
 Nazz

相对 gRPC, JSON-RPC:

最后问一下, 有根据文件生成各大语言 JSON 代码的命令行工具吗?

10147 次点击
所在节点    程序员
72 条回复
fioncat
2023-02-24 10:35:43 +08:00
当你们公司的 QPS 上去之后,就会发现序列化是个很大的性能瓶颈。
当然,低业务量的时候无所谓,哪个舒服用哪个。
duke807
2023-02-24 10:38:24 +08:00
MessagePack +1024
Nazz
2023-02-24 10:43:28 +08:00
@mcfog 对于 go 真的可以😂, 别的语言不清楚
Nazz
2023-02-24 10:45:09 +08:00
@julyclyde 为什么不占优, 所有请求应答服务都用 HTTP JSON-RPC, 去除了 gRPC
wanguorui123
2023-02-24 10:46:28 +08:00
为了通用性还是 HTTP-JSON 靠谱
Nazz
2023-02-24 10:47:36 +08:00
@sadfQED2 流量恐怖如斯, 怎么优化都不为过
Nazz
2023-02-24 10:49:38 +08:00
@Maboroshii gRPC 性能方面确实不占优势, HTTP1.1+PB 在内网也能达到非常高的 IOPS
Nazz
2023-02-24 10:51:01 +08:00
@lujiaxing gRPC 一般是用在内网, 不开启压缩加密 IOPS 会更高, CPU 占用率更低
Nazz
2023-02-24 10:51:57 +08:00
@wuhaoecho JSON 可以方便地在 postman 里面手动编辑
mafanding
2023-02-24 11:14:24 +08:00
我也有个疑惑 按理说发明 grpc 是为了在内部服务之间更高效的调用,那么为什么现在的微服务还要加 tls 层
julyclyde
2023-02-24 11:18:27 +08:00
@Nazz 因为 json 解析的速度慢啊
Nazz
2023-02-24 11:19:40 +08:00
@mafanding HTTP1 可以不加 TLS. H2C 好像基本没人用
AugOmin
2023-02-24 11:21:12 +08:00
我是用了 grpc 的双向 steam ,在 http2.0 里面 grpc 算是比较常用的,之前还试过 websocket 实现双向 steam ,比 grpc 的 steam 开箱即用程度还是差不少
Nazz
2023-02-24 11:26:58 +08:00
@AugOmin 要是我的话会选择 WebSocket, 因为我对 ws 非常的熟悉.
byte10
2023-02-24 12:21:58 +08:00
@mafanding 加 TLS 可能是安全的要求,一般 rpc 应该加鉴权就可以了,加 TLS 感觉有点奇怪。。
joesonw
2023-02-24 12:40:36 +08:00
@byte10 http2 默认 tls
idblife
2023-02-24 13:23:16 +08:00
grpc 用来翻墙都比其它要快。。。
Nazz
2023-02-24 13:52:51 +08:00
@idblife 我用 v2ray
Goat121
2023-02-24 14:59:46 +08:00
既然性能要求无所谓,还用啥 JSON-RPC ,直接 http 不是更简单更通用
documentzhangx66
2023-02-24 15:26:44 +08:00
可读性、可调试性,HTTP-JSON 方案完胜。

性能,gRPC 完胜。

有钱上 HTTP-JSON ,没钱上 gRPC 。就像有钱上虚拟机,没钱上 docker 一样。

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

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

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

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

© 2021 V2EX