В Golang http клиенте, почему есть MaxConnsPerHost, но нет MaxConns - PullRequest
2 голосов
/ 25 апреля 2020
  1. Я вижу в Go http пакете:

    MaxIdleConnsPerHost int

    Но я не вижу MaxConns для всего http-клиента, почему?

  2. Если я ограничу только MaxIdleConns (для всего клиента), возможно ли иметь больше этого количества активных соединений? (Я предполагаю, что ответ прост: да, но разве это только теоретический характер?)

Из документов:

// MaxIdleConnsPerHost, if non-zero, controls the maximum idle
// (keep-alive) connections to keep per-host. If zero,
// DefaultMaxIdleConnsPerHost is used.
MaxIdleConnsPerHost int



// 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.
MaxConnsPerHost int

1 Ответ

3 голосов
/ 25 апреля 2020

Я не вижу MaxConns для всего http-клиента, почему?

Потому что его нет. Если вы не хотите делать больше, чем N одновременных запросов с этим клиентом: просто не делайте этого. (Если клиент ограничил бы ist, это было бы основным пита для использования.)

Если я ограничу только MaxIdleConns (для всего клиента), возможно ли иметь больше, чем этот предел активных соединений?

Да. MaxIdlConns ограничивает неиспользуемые соединения в режиме ожидания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...