Является ли сохранение пула соединений в одноэлементном режиме плохим?

Я просто прочитал этот вопрос и ответы на претензии :

  

«Предположим, что объект подключения db является одиночным в моем приложении»

     

Это не обязательно. Соединение с базой данных НЕ ДОЛЖНО БЫТЬ (да, полужирный и   с капиталами, чтобы убедиться, что вы и каждый читатель никогда не делаете этого   ошибка) одиночный объект. Ваше соединение не должно быть частью   Singleton, чтобы держать его открытым все время. Вместо этого используйте соответствующую базу данных   пул соединений, который позаботится об открытии необходимого физического   подключения к базе данных и поддерживать их в живых   приложение.

Мы, конечно, используем пул соединений, чтобы заботиться о наших, ну, соединениях. Тем не менее, мы сохраняем этот пул в одноэлементном режиме. Как еще можно убедиться, что он живет во всем приложении? В чем его плохая практика?

4 голоса | спросил OddDev 1 FebruaryEurope/MoscowbWed, 01 Feb 2017 13:26:29 +0300000000pmWed, 01 Feb 2017 13:26:29 +030017 2017, 13:26:29

2 ответа


1

Я думаю, что цитируемый ответ в основном указывает мнение .

Один факт в этом ответе относится к аспекту «per classloader».

Другими словами: если вы не находитесь в ситуации, где входит эта часть «несколько загрузчиков классов», нет никаких технических причин не использовать одноэлемент.

Конечно, ключевым элементом было бы реализовать «правильный» синглтон; например, используя для этого перечисление Java.

ответил GhostCat 1 FebruaryEurope/MoscowbWed, 01 Feb 2017 13:31:31 +0300000000pmWed, 01 Feb 2017 13:31:31 +030017 2017, 13:31:31
1

Что автор цитаты говорит о том, что соединение никогда не должно быть одиночным, не сохраненным в одноэлементном. Я не могу представить связь как одноэлемент со статусом типа «подключенный», «доступный» и т. Д. ... Для этого созданы пулы.

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

ответил 1 FebruaryEurope/MoscowbWed, 01 Feb 2017 14:52:30 +0300000000pmWed, 01 Feb 2017 14:52:30 +030017 2017, 14:52:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132