Go 是否需要通过gprc流客户端重新创建新流?

Go 是否需要通过gprc流客户端重新创建新流?,go,protocol-buffers,grpc,http2,grpc-go,Go,Protocol Buffers,Grpc,Http2,Grpc Go,有一个gRPC流服务器和客户端。客户端通过gRPC双向流拨号到服务器。服务器正在kunbeness docker上运行 在升级kubeness服务器一次之后,客户端在尝试向流服务器发送请求时总是会收到EOF错误。我发现TCP连接是活动的。为什么? 我是否需要通过在go grpc中调用“NewStream”API来重新创建新的strean func (cc *ClientConn) NewStream(ctx context.Context, desc *StreamDesc, method st

有一个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 stream server时设置了keep alive参数,那么流是自动重新连接还是仅通过TCP连接

如果我在拨打gRPC流服务器时设置了保持活动参数, 流是自动重新连接还是仅通过TCP重新连接 联系

只是TCP连接

在io.EOF之后重新启动并不少见,因此客户端需要重新启动流


您的重试循环可能希望在重试和最大重试尝试之间添加等待/睡眠回退,以防止出现失控的忙循环。

因此,应用程序有责任保持连接处于活动状态。