В высоконагруженном ASP.NET Core сервисе, вызывающем внешние HTTP-API, при пиках нагрузки растут таймауты, наблюдается socket exhaustion (много соединений в TIME_WAIT). Какой подход наиболее корректный?
👾 — Создавать новый HttpClient на каждый запрос для «чистых» соединений
👍 — Использовать IHttpClientFactory с переиспользованием SocketsHttpHandler, настроив пул соединений, таймауты и политику DNS
🥰 — Оборачивать каждый запрос в Task.Run, чтобы разгрузить поток
⚡️ — Перейти на HttpWebRequest, так как он «ближе к сокетам»
Библиотека задач по C#
Post #995
1.16K
- 👍 14
- 🌚 1