【发布时间】:2019-03-30 07:13:49
【问题描述】:
我有一个 grpc 服务器和客户端,大部分时间都按预期工作,但偶尔会收到“传输正在关闭”错误:
rpc error: code = Unavailable desc = transport is closing
我想知道是不是我的设置有问题。客户端很基础
connection, err := grpc.Dial(address, grpc.WithInsecure(), grpc.WithBlock())
pb.NewAppClient(connection)
defer connection.Close()
并且调用是在超时的情况下进行的,例如
ctx, cancel := context.WithTimeout(ctx, 300*time.Millisecond)
defer cancel()
client.MyGRPCMethod(ctx, params)
我正在做的另一件事是检查连接以查看它是打开、空闲还是正在连接,如果是,则重用连接。否则重拨。
服务器没有发生任何特殊配置
grpc.NewServer()
在设置 grpc 客户端/服务器时,我可能会犯什么常见错误吗?
【问题讨论】: