У меня есть сервер и клиент 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, которые я могу совершать?