Пул соединений в облачной среде - PullRequest
0 голосов
/ 07 марта 2020

Требуется ли еще пул соединений в облачной среде?

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

Я думаю (не знаю) что в облачной среде они больше не нужны.

Существует пул контейнеров / модулей. Таким образом, пул соединений больше не нужен.

Это правда?

Ответы [ 2 ]

2 голосов
/ 31 марта 2020

Как всегда, измерить, не угадать, но да, если вы заботитесь о производительности, вам все равно требуется пул соединений.

Помимо упомянутой выше причины (TCP 3-way handhsake) вы также хотите пул соединений по следующим причинам:

  1. В базе данных может потребоваться разветвление или запуск нового процесса для каждого соединения, что может быть очень дорогостоящей операцией
  2. После закрытия соединения процесс базы данных может должны быть очищены операционной системой для безопасной памяти, файловых дескрипторов, сокетов и т. д. c.
  3. В базе данных может потребоваться проверка учетных данных пользователя, которые в некоторых случаях могут быть учетными записями пользователей LDAP. так что задействовано другое сетевое соединение
  4. Если ваше соединение не является обычным TCP-соединением, но вы используете SSL / TLS в наихудшем сценарии (возобновление сеанса невозможно), вы можете столкнуться с издержками на полное подтверждение связи TLS, включая проверка подписи RSA и проверка статуса сертификатов через CRL или OCSP через inte rnet

Мы используем это профессионально, а также:

  • пул httpclients (для веб-сервисов REST / SOAP)
  • пул соединений to RabbitMQ (мониторы RabbitMQ обеспечивают понимание того, что они называют: статистика оттока, чтобы легко увидеть, как часто устанавливаются новые соединения)

Вы также можете попробовать другие «решения облачной архитектуры», такие как: обслуживайте меня sh, из которых Istio является реализацией, которая пытается отделить такого рода проблемы от вашего приложения в микросервисной архитектуре. Они могут использовать локальный прокси-сервер с пулами соединений в так называемом «шаблоне боковой машины». Для более полного объяснения см .: Red Hats объяснение услуги Me sh

1 голос
/ 30 марта 2020

Вам все еще нужен пул соединений.

Пул соединений не позволяет вам затрачивать средства на установление TCP-соединения, когда вы хотите отправить, например, HTTP-запрос в другую службу. Я полагаю, что это около двух циклов приема-передачи (RTT) (SYN -> <- SYN-ACK -> ACK). См. Установление соединения . Сетевой ввод-вывод занимает очень много времени, поэтому это может сэкономить значительное время для запросов.

Пул соединений также очень полезен для базовой операционной системы. Например, в контексте Kubernetes вы можете общаться с «Сервисом». Kubernetes использует iptables для правильной маршрутизации трафика c. iptables использует файл с именем conntrack для отслеживания всех соединений, которыми управляет iptables. Это файл с конечным размером. Пул подключений может предотвратить перегрузку файла conntrack. Вот соответствующее сообщение в блоге .

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