[有一个gRPC流服务器和客户端。客户端通过gRPC双向流拨号到服务器。服务器正在kunbeness码头上运行。
一次升级kubeness服务器后,尝试向流服务器发送请求时,客户端始终会收到EOF错误。我发现TCP连接仍然有效。为什么?
我需要通过在go-grpc中调用“ NewStream” API来重新创建新的strean吗?
func (cc *ClientConn) NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error)
如果在拨打gRPC流服务器时设置了保持活动参数,该流将自动重新连接还是仅重新连接TCP?
如果我在拨打gRPC流服务器时设置了保持活动参数,流会自动重新连接还是仅重新连接TCP连接?
仅是TCP连接。
在io.EOF之后重新启动并不常见,因此您的客户端将需要重新启动流。
您的重试循环可能要在重试和最大重试次数之间添加等待/睡眠退避,以防止繁忙的忙循环。