Как всегда, измерить, не угадать, но да, если вы заботитесь о производительности, вам все равно требуется пул соединений.
Помимо упомянутой выше причины (TCP 3-way handhsake) вы также хотите пул соединений по следующим причинам:
- В базе данных может потребоваться разветвление или запуск нового процесса для каждого соединения, что может быть очень дорогостоящей операцией
- После закрытия соединения процесс базы данных может должны быть очищены операционной системой для безопасной памяти, файловых дескрипторов, сокетов и т. д. c.
- В базе данных может потребоваться проверка учетных данных пользователя, которые в некоторых случаях могут быть учетными записями пользователей LDAP. так что задействовано другое сетевое соединение
- Если ваше соединение не является обычным TCP-соединением, но вы используете SSL / TLS в наихудшем сценарии (возобновление сеанса невозможно), вы можете столкнуться с издержками на полное подтверждение связи TLS, включая проверка подписи RSA и проверка статуса сертификатов через CRL или OCSP через inte rnet
Мы используем это профессионально, а также:
- пул httpclients (для веб-сервисов REST / SOAP)
- пул соединений to RabbitMQ (мониторы RabbitMQ обеспечивают понимание того, что они называют: статистика оттока, чтобы легко увидеть, как часто устанавливаются новые соединения)
Вы также можете попробовать другие «решения облачной архитектуры», такие как: обслуживайте меня sh, из которых Istio является реализацией, которая пытается отделить такого рода проблемы от вашего приложения в микросервисной архитектуре. Они могут использовать локальный прокси-сервер с пулами соединений в так называемом «шаблоне боковой машины». Для более полного объяснения см .: Red Hats объяснение услуги Me sh