0

有一个 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 连接?

4

1 回答 1

0

如果我在拨号到 gRPC 流服务器时设置了 keep-alive 参数,流会自动重新连接还是只是 TCP 连接?

只是TCP连接。

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

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

于 2019-10-11T12:01:46.360 回答