复用的是以下哪个对象实际上代表了 http2 链接,ManagedChannel 还是 stub,是否有心跳、重连等机制,一个链接能复用的最大次数是否有限制?
无调用时保持链接,高频调用也利用一个 http2 链接,既服务间始终只有一个 http2 链接。
定义一个通用接口,传输 json 串,解析数据后在程序内部决定如何处理,比如
service DiagnosisMessage {
rpc myFunc(stream request) returns (stream response) {}
}
message request{
string req = 1;
}
message response{
string resp = 1;
}
或者定义多个 grpc 接口,定义精准的数据类型和结构
刚接触 grpc,如果有合适的资料或者群,秋梨膏
1
baiyi 2019-12-03 11:18:06 +08:00 1
之前接触过 gRPC,但也是新手,交流一下
1. 没听过 grpc 的连接复用,我猜应该是 HTTP2 的多路复用,可以查下相关文章 2. 不懂 3. 本来 grpc 就是定义格式的,还是不要把它当作传输协议吧 |
2
ledzep2 2019-12-03 11:26:12 +08:00 via Android
看过 grpc c 的设计,不一定对。Grpc 内部有 load balance, 一个 channel 下面可能有多个 subchannel, subchannel 对应的 transport 是 http2 链接。重连有的,心跳是 http2 的。保持链接是的。只要 channel 不拆,stub 随便拆都是复用同一 channel.
|