我有以下代码:
dialCtx, cancel := context.WithTimeout(ctx, 120*time.Second)
defer cancel()
conn, err := grpc.DialContext(dialCtx, address,
grpc.WithTransportCredentials(creds),
grpc.WithKeepaliveParams(keepAlive),
grpc.WithBlock(),
)
if err != nil {
return fmt.Errorf("failed to connect to server: %v", err)
}
我正在尝试创建与gRPC服务器的连接。一件重要的事情是,我正在使用哪个阻止拨号盘,直到连接准备就绪或上下文超时。好的,但是当上下文超时时,我不明白连接问题是什么,也就是最后一个连接错误。我得到.WithBlock()context deadline exceeded
我尝试了以下操作:
使用 - 当服务不可用时返回错误,但当 TLS 验证失败时,重新连接将继续。grpc.FailOnNonTempDialError(true)
使用 - 对我不起作用,因为有时初始拨号成功,但如果服务器证书验证失败,则整个连接将关闭。grpc.WithContextDialer(...)
如何获取最后一个连接错误?
慕的地6264312
相关分类