有一个 gRPC 流服务器和客户端。客户端通过 gRPC 双向流拨号到服务器。服务器在 kunbeness docker 上运行。
升级一次 kubeness 服务器后,客户端在尝试向流服务器发送请求时总是收到 EOF 错误。我发现 TCP 连接是事件的。为什么?
我是否需要通过在 go-grpc 中调用“NewStream”API 来重新创建新的 strean?
func (cc *ClientConn) NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error)
如果我在拨号到 gRPC 流服务器时设置了 keep-alive 参数,流会自动重新连接还是只是 TCP 连接?
最佳答案
If I set keep-alive parameters when dialing to gRPC stream server, does the stream would be reconnected automatically or just the TCP connection?
只是TCP连接。
在 io.EOF 之后重新启动并不少见,因此您的客户端将需要重新启动流。
您的重试循环可能希望在重试和最大重试尝试之间添加等待/ sleep 退避,以防止失控的繁忙循环。
关于go - 是否需要通过 gprc 流客户端重新创建新流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58339616/