за HTTP-запрос по TCP-соединению - PullRequest
0 голосов
/ 07 ноября 2018

У меня простой вопрос: сколько запросов http делает сколько TCP-соединений с сервером в Go.

Я пишу, что инструмент может отправлять много запросов http, но я нахожу все эти запросы через одно или два соединения tcp, похоже, у golang http Transport есть пул соединений.

1 Ответ

0 голосов
/ 07 ноября 2018

Если вы используете DefaultTransport для HTTP-запросов, то TCP-соединения используются повторно.

DefaultTransport является реализацией транспорта по умолчанию и используется DefaultClient. Он устанавливает сетевые соединения по мере необходимости и кэширует их для повторного использования при последующих вызовах.

Вы можете использовать MaxConnsPerHost для ограничения общего количества соединений:

// MaxConnsPerHost optionally limits the total number of
// connections per host, including connections in the dialing,
// active, and idle states. On limit violation, dials will block.
//
// Zero means no limit.
//
// For HTTP/2, this currently only controls the number of new
// connections being created at a time, instead of the total
// number. In practice, hosts using HTTP/2 only have about one
// idle connection, though.
MaxConnsPerHost int

Редактировать

Я настоятельно рекомендую вам прочитать документы , поскольку Go имеет одну из наиболее хорошо документированных стандартных библиотек. В любом случае, вы можете настроить http.Transport на отключение поддержки активности для принудительного использования одного TCP-соединения на запрос.

// DisableKeepAlives, if true, disables HTTP keep-alives and
// will only use the connection to the server for a single
// HTTP request.
//
// This is unrelated to the similarly named TCP keep-alives.
DisableKeepAlives bool
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...