Что такое пул соединений? - PullRequest
19 голосов
/ 02 марта 2010

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

  • Когда я должен рассмотреть возможность использования пул соединений?

  • Каковы преимущества и недостатки пула соединений?

Любое предложение ....

Ответы [ 5 ]

19 голосов
/ 02 марта 2010

Идея состоит в том, что вы не открываете и не закрываете одно соединение с вашей базой данных, вместо этого вы создаете «пул» открытых соединений и затем используете их повторно. Как только один поток или процедура завершена, он помещает соединение обратно в пул и, таким образом, становится доступным для других потоков. Идея заключается в том, что обычно у вас не более 50 параллельных соединений, и что открытие соединения требует времени и ресурсов.

7 голосов
/ 02 марта 2010

Когда я должен рассмотреть возможность использования пул соединений?

  • Всегда для производственной системы.

Каковы преимущества и недостатки пула соединений?

Преимущества:

  • Производительность . Используйте фиксированный пул соединений и избегайте дорогостоящего создания и выпуска соединений.
  • Общая инфраструктура . Если ваша база данных используется несколькими приложениями, вы не хотите, чтобы одно приложение исчерпало все соединения. Пул помогает ограничить количество подключений на приложение.
  • Лицензирование . В зависимости от вашей лицензии на базу данных количество одновременно работающих клиентов ограничено. Вы можете установить пул с количеством авторизованных соединений. Если соединение недоступно, клиент ждет, пока оно не станет доступным, или время ожидания истекло.
  • Проблема с подключением . Пул соединений, который находится между клиентом и базой данных, может прозрачно предоставлять клиенту такие удобные функции, как тест ping, повтор соединения и т. Д. В худшем случае тайм-аут.
  • Мониторинг . Вы можете отслеживать пул, видеть количество активных соединений и т. Д.

Недостатки:

  • Вам нужно установить и настроить его, который обычно является арахисом.
5 голосов
/ 02 марта 2010

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

Преимущества заключаются в том, что гораздо быстрее открывать / закрывать новые соединения, поскольку они на самом деле не открываются и не закрываются, а просто извлекаются из пула.

Недостатком может быть то, что в некоторых пулах подключений вы получите ошибку, если все пул подключений используются. Обычно это хорошо, так как указывает на проблему с тем, что вызывающий код не закрывает соединения, но если вам законно нужно больше соединений, чем в пуле, и вы не настроили его должным образом, вы можете получить ошибки там, где иначе не будет.

И, конечно, будут другие плюсы и минусы в зависимости от конкретной среды, в которой вы работаете, и базы данных.

0 голосов
/ 02 марта 2010

В .NET, если вы используете одну и ту же строку подключения для доступа к данным, у вас уже есть пул подключений. Идея состоит в том, чтобы повторно использовать незанятое соединение, не разрывая его и не создавая заново, тем самым экономя ресурсы сервера. Это, конечно, с учетом того, что вы закрываете открытые соединения по завершении своей работы.

0 голосов
/ 02 марта 2010

пул соединений позволяет повторно использовать существующее, но не использованное соединение с базой данных. с его помощью вы устраняете издержки подключения / отключения к серверу базы данных. это обеспечивает значительное повышение производительности в большинстве случаев. единственная причина, по которой я могу не использовать его, заключается в том, что ваше программное обеспечение не будет подключаться достаточно часто, чтобы поддерживать соединения, или если в пуле есть какая-то ошибка.

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