改之前内部服务的连接数比用户的连接数还多
1
lxd152 2020-01-07 20:12:43 +08:00
棒棒棒
|
2
optional 2020-01-07 20:14:18 +08:00
这 tps/qps 没变少吧,,只是 grpc 走了 http/2
|
3
0ZXYDDu796nVCFxq 2020-01-07 20:14:22 +08:00 via Android
有性能对比吗
|
4
TypeError 2020-01-07 20:19:05 +08:00 via Android
连接复用了?
|
5
meteor957 2020-01-07 20:25:40 +08:00
这也太夸张了吧
|
6
fox1955 2020-01-07 20:32:32 +08:00 5
经历过 http -> grpc. 性能的提升远不及联调开发效率的降低, 最后换回去了.
|
7
ofooo 2020-01-07 20:32:41 +08:00
不是只换了一种链接方式么? 通讯量应该一样才对吧?
|
8
dcalsky 2020-01-07 20:33:21 +08:00 via Android
各个服务之间共用 protoc 吗,protoc gen 等基础设施经验能分享一下吗?
|
9
diveIntoWork 2020-01-07 20:44:26 +08:00
改成 gRpc 后,不走 Http 协议了,统计出来的连接数当然变少了,要看 cpu 利用率、内存占用、吞吐才有意义
|
10
outoftimeerror 2020-01-07 20:48:20 +08:00
grpc 不也是基于 http2 吗
|
11
itstudying OP @TypeError #4 是的 http2 的多路复用
|
12
itstudying OP |
13
itstudying OP @outoftimeerror #10 是呀 只是因为 http2 支持多路复用,不搞连接池的话也就只有一个连接
|
14
luozic 2020-01-07 21:19:04 +08:00 via iPhone
这种得开发配套的工具链,否则出问题联调,apm 接入,debug 等等一堆的工具链需要开发配套,如过涉及到 cdn,网络硬件等更深远的坑,就等着哭吧。restful with http 主要是生态,别的东西有个 JB 生态
|
15
itstudying OP @luozic 服务之间通讯使用 rpc 框架不是很正常的吗,grpc 虽然没 http 生态好但也是很成熟的了,也不至于差很多到了会踩很多深坑的地步。更不至于像你说的 JB 生态都没有
|
16
luozic 2020-01-07 22:03:08 +08:00 via iPhone
@itstudying 我的意思是边界约定好,大公司使用一部分特殊能性能的工具是他们能配套建立全链路的工具,小公司一般没有,而这种全链路的工具没听说过哪家开源的。rest 是因为文本的自然原因导致容易找到全链路的替代品。
|
17
luozic 2020-01-07 22:10:21 +08:00 via iPhone
最简单的 apm 用啥,API gateway 等最基础的服务治理有几个支持了,支持程度如何?
|
18
wangyzj 2020-01-07 23:19:31 +08:00
不喜欢 pb
都是 http2 会有很大变化吗 |
19
itstudying OP @luozic grpc 也就是个 http2 也有 header,也有请求 path 多说无益…… 搜索引擎第一页就有结果
|
20
itstudying OP @wangyzj 实际只是复用了连接,不想用 pb 不用就是~
|
21
binbinyouliiii 2020-01-08 00:33:35 +08:00
http1.1 不也是可以走长连接
|
22
wangyzj 2020-01-08 00:57:46 +08:00
@itstudying 给个 demo 呗
另外 grpc 有类似 postman 那种方便调试的客户端工具吗? |
23
KuroNekoFan 2020-01-08 06:28:11 +08:00 via iPhone
之前看一篇讲 uber 技术内幕的文章
里面提到一件事 就是某个系统本来用了自定义通讯协议(大概就是 grpc,thrift 什么的)后来遇到问题怎么都解决不了 后来换成 http,问题不见了 |
24
ebingtel 2020-01-08 08:40:38 +08:00
GRPC 的负载均衡是怎么搞的? nginx 还不支持吧
|
25
itstudying OP @wangyzj #22 如果不用 pb 的话就不能用 grpc 了,只能客户端和服务端都支持 http2 才行,我们主要是 go 语言 demo 网络上有很多~,https://github.com/fullstorydev/grpcurl 可以使用这个库进行调试,不过我们都是会写个 client 打印输出。
|
26
itstudying OP @ebingtel #24 nginx1.13 版本就支持了 grpc 的负载均衡,不过我们用的是阿里云的 slb,
|
27
itstudying OP @ebingtel #24 哦 也用到了 nginx,不过没负载均衡只是做了转发 grpc 的请求,nginx 开启支持 http2 就好
|
28
THaGKI9 2020-01-08 09:16:16 +08:00 via iPhone
为啥会有这么急剧的变化呢?你们的更替是直接全量上线吗?
|
30
xxiu 2020-01-08 09:25:15 +08:00
grpc 是 http2 多路复用,连接数相当于以前的一对多变成一对一。
|
31
whypool 2020-01-08 10:00:41 +08:00
然后内存 boom 了?
|
32
chennqqi 2020-01-08 10:13:20 +08:00
http keepalive 也能复用啊
|
36
wysnylc 2020-01-08 11:33:20 +08:00
都在从 rpc 升级到 http,你这往回走,是智者还是愚昧?待后来人评价
反正 spring cloud 是主推 http,rpc 只是可选和备选 |
37
fuxiaohei 2020-01-08 11:34:48 +08:00
以前是 http 1 吗?直接升级到 http2 也许就有效果了
|
38
realpg 2020-01-08 11:35:32 +08:00
直接把接口服务器变成 h2 不也这效果
|
40
ebingtel 2020-01-08 11:39:57 +08:00
@itstudying 哦 是我的提问提错了……在使用 nginx 做长连接的负载均衡,好像有点问题 不知道你们有没有这种长连接的场景
|
41
leoaqr 2020-01-08 11:48:37 +08:00 via iPhone
只看了连接数,cpu 使用量有变化么?
|
42
guokeke 2020-01-08 11:49:06 +08:00
和 grpc 对标的不是 rest 和 graphql 吗? 如果 http 改 grpc ?指的是 http 1.1 升 2 ? 那其实 nginx 改个参数就行了。
|
43
dbskcnc 2020-01-08 12:01:57 +08:00
grpc 语法方面确实方便
|
44
luozic 2020-01-08 12:47:46 +08:00 via iPhone
现在更合适的通用连接方式 rsocket 基本会成为后续更主流的方式,协议层和传输层解耦合,协议和应用捆死的模型最大规模的应用不是 servlet 么,吹了那么多,servlet 啥时候换 http2 协议性能提升了不少了?
|
45
hyperbin 2020-01-08 12:58:02 +08:00 via Android
换 http2 不就行了?
|
47
luozic 2020-01-08 13:47:07 +08:00
cncf 用 grpc 的原因还用说么,k8s 等基础设施是抄谁的? 并且当时没有造足够多的 rpc,大家也不知道如何设计一个通用性能高而且和传输协议解耦合的传输层 rpc,gprc 好歹是当时的唯二中的一个半自动化 rpc,比 facebook 的 thrift 友好一点,
|
48
janxin 2020-01-08 14:11:51 +08:00
@KuroNekoFan uber 用的 thrift
|
49
KuroNekoFan 2020-01-08 14:24:18 +08:00 via iPhone
@janxin 可能我描述的不够仔细,不过我主要是提这么一个事情,而不是想表达“据我所知 uber 从 xxx 转向 http”
|
50
wtof 2020-01-08 14:51:30 +08:00
|
51
ospider 2020-01-08 15:15:22 +08:00
开始在公司用的 gRPC,可惜其他人理解不了,觉得还要编译好麻烦啊,竟然又换回了 http。我也是醉了
|
54
codewarrior 2020-01-09 02:03:18 +08:00 via Android
换成 grpc 之后 authentication 怎么做的? passive authentication,ssl 之类的有类似的功能支持吗?
|
55
duchengle001 2021-04-10 09:26:22 +08:00
@itstudying 请教一下阿里云 SLB 怎么配置 gRpc 的监听呀?
|
56
itstudying OP @duchengle001 #55 就直接使用 tcp 协议监听就可以。但是在负载到新增节点时可能会有点延时,可以测试下。
|
57
feelapi 2022-01-10 22:46:25 +08:00
另外一条可以云原生,桌面两条腿走路的模式,必须 gRPC.
|
58
daoqiongsi1101 2022-02-18 00:32:50 +08:00
比如 A 服务通过 grpc 请求 B 服务,100 个并发请求,那么连接数是多少?
|
59
chaleaochexist 2023-03-24 15:13:46 +08:00
@itstudying #20 不想用 pb 请问如何实现 有例子吗 最简单的就可以...
|