Что такое connection pool в Go?

Middle
935 просмотров
AFK Offer AI

Connection pool — это набор заранее открытых соединений, которые переиспользуются вместо создания нового соединения на каждый запрос. Открытие TCP-соединения дорогое: DNS, TCP handshake, TLS handshake. Пул держит их живыми и раздаёт по запросу. В Go стандартный database/sql имеет встроенный пул с настройками MaxOpenConns, MaxIdleConns, ConnMaxLifetime. Для HTTP — http.Transport тоже пулит соединения. Правильная настройка пула — баланс между расходом памяти и latency первого запроса.

Следующий вопрос

Что такое sync.Pool и зачем он нужен?