Есть ли проблема с обновлением DNS в кэшированном HttpClient, созданном из HttpClientFactory? - PullRequest
0 голосов
/ 08 марта 2019

Этот поток спрашивает, следует ли кэшировать HttpClient, созданный HttpClientFactory.Я думаю, что ответ будет отрицательным, поскольку каждый HttpClientFactory будет иметь существующий пул HttpClientHandler.

Но мой вопрос заключается в том, что произойдет, если он будет кэширован и использован повторно.У него все еще есть проблема обновления DNS?

Согласно Введение Стива Гордона в HttpClientFactory ,

Любые клиенты, зависящие от исходной цепочки обработчиков, могут продолжать использоватьбез каких-либо проблем.

Я думаю, это означает, что кэшированный HttpClient продолжит использовать тот же HttpClientHandler даже через 2 минуты и не будет обновлять DNS.В этом случае HttpClient не должен кэшироваться и должен постоянно использовать HttpClientFactory.CreateClient.

Документ ASP.NET Core просто говорит, что ему не нужно хранить один экземпляр, но не сообщает о последствиях, если один экземпляр сохраняется.

Поддержание одного экземпляра HttpClient в течение долгого времени является распространенным шаблоном, который использовался до создания IHttpClientFactory.Этот шаблон становится ненужным после перехода на IHttpClientFactory.

...