У меня есть сервисы golang с постоянным клиентом Bigtable.Службы выполняют сотни операций чтения / записи на Bigtable в секунду.
Каждый час после загрузки службы у меня возникают сотни таких ошибок:
Retryable error: rpc error: code = Unavailable desc =
the connection is draining, retrying in 74.49241ms
За ошибкой следуютпри увеличении времени обработки я не могу допустить, чтобы возникали эти ошибки.
Мне удалось выяснить, что клиент Bigtable использует пул соединений gRPC.
Кажется, что сервер Bigtable gRPCМаксимальное время соединения составляет 1 час, что может объяснить вышеуказанную ошибку и увеличить время обработки при переподключении.
Предполагается, что конфигурация maxAgeGrace дает дополнительное время для завершения текущих операций и позволяет избежать одновременного завершения всех подключений к пулу.время.
Я увеличил размер пула соединений со значения по умолчанию с 4 до 12 без особой выгоды
Как предотвратить увеличение времени обработки во время переподключений и появления этой ошибки, учитывая, что мой трафик будет расти