gRPC 的一些疑问,欢迎指教,秋梨膏

2019-12-03 11:06:46 +08:00
 BacGa

以下场景均在 java 项目中

grpc 的链接复用:

复用的是以下哪个对象实际上代表了 http2 链接,ManagedChannel 还是 stub,是否有心跳、重连等机制,一个链接能复用的最大次数是否有限制?

服务间的 grpc 是否需要长期保持一个链接:

无调用时保持链接,高频调用也利用一个 http2 链接,既服务间始终只有一个 http2 链接。

在生产应用中,接口的定义方式:

定义一个通用接口,传输 json 串,解析数据后在程序内部决定如何处理,比如

service DiagnosisMessage {
  rpc myFunc(stream request) returns (stream response) {}
}

message request{
    string req = 1;
}

message response{
    string resp = 1;
}

或者定义多个 grpc 接口,定义精准的数据类型和结构

刚接触 grpc,如果有合适的资料或者群,秋梨膏

1446 次点击
所在节点    问与答
2 条回复
baiyi
2019-12-03 11:18:06 +08:00
之前接触过 gRPC,但也是新手,交流一下

1. 没听过 grpc 的连接复用,我猜应该是 HTTP2 的多路复用,可以查下相关文章
2. 不懂
3. 本来 grpc 就是定义格式的,还是不要把它当作传输协议吧
ledzep2
2019-12-03 11:26:12 +08:00
看过 grpc c 的设计,不一定对。Grpc 内部有 load balance, 一个 channel 下面可能有多个 subchannel, subchannel 对应的 transport 是 http2 链接。重连有的,心跳是 http2 的。保持链接是的。只要 channel 不拆,stub 随便拆都是复用同一 channel.

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

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

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

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

© 2021 V2EX