Эта статья является частью серии, над которой я начал работать. В этой серии статей я кратко рассмотрю инженерные концепции.
1/n
Что
Пул соединений - это повторное использование группы соединений вместо создания нового соединения для каждого запроса.
Почему
- TCP-соединения обходятся дорого → Для создания TCP-соединения требуется трехстороннее рукопожатие. На его создание нужно время и ресурсы.
- 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-го.
Вот и все! Спасибо, что прочитали, и я надеюсь, что статья вам понравилась. Если да, то обязательно хлопайте в ладоши :)