Эта статья является частью серии, над которой я начал работать. В этой серии статей я кратко рассмотрю инженерные концепции.

1/n

Что

Пул соединений - это повторное использование группы соединений вместо создания нового соединения для каждого запроса.

Почему

  1. TCP-соединения обходятся дорого → Для создания TCP-соединения требуется трехстороннее рукопожатие. На его создание нужно время и ресурсы.
  2. TLS → При использовании HTTPS есть накладные расходы на рукопожатие TLS.

Демо

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

Эти запросы должны относиться к одному домену.

Выполните следующую команду

curl https://github.com/404 https://github.com/404 -o /dev/null -w '\nEstablish Connection time %{time_connect} total time %{time_total}\n'

Как вы можете видеть, 1-й запрос включает завершение TLS, но 2-й запрос полностью его пропускает, поскольку он использует то же соединение.

Кроме того, время, необходимое для установления соединения, для 2-го запроса намного меньше, чем для 1-го.

Вот и все! Спасибо, что прочитали, и я надеюсь, что статья вам понравилась. Если да, то обязательно хлопайте в ладоши :)

Вы также можете подписаться на меня на Medium и Github. 🙂