ASP.NET Core HttpClientFactory в Google Cloud. Выполнение случайным образом ограничивает исходящие запросы HTTP/2 толькоC#

Место общения программистов C#
Anonymous
ASP.NET Core HttpClientFactory в Google Cloud. Выполнение случайным образом ограничивает исходящие запросы HTTP/2 только

Сообщение Anonymous »

У меня есть веб-API ASP.NET Core, работающий в Google Cloud Run, который использует IHttpClientFactory для вызова другой службы Cloud Run через HTTP/2.
Все работает нормально при стабильном трафике.
Однако во время внезапных всплесков автомасштабирования исходящие запросы случайным образом завершаются с ошибкой TaskCanceledException/HttpRequestException, даже если нижестоящая служба остается работоспособен.
Уменьшение PooledConnectionLifetime снижает частоту сбоев, но значительно увеличивает нагрузку на ЦП и TLS.

Код: Выделить всё

builder.Services.AddHttpClient("api")
.ConfigurePrimaryHttpMessageHandler(() =>
new SocketsHttpHandler
{
EnableMultipleHttp2Connections = false,
PooledConnectionLifetime = TimeSpan.FromMinutes(20),
MaxConnectionsPerServer = 500
});
Вызвано ли это устаревшими соединениями пула HTTP/2 во время автомасштабирования Cloud Run, или существует ли рекомендуемая конфигурация SocketsHttpHandler для связи Cloud Run с Cloud Run?

Вернуться в «C#»