Я отвечаю за разработку и поддержание группы веб-приложений, которые сосредоточены вокруг похожих данных. Архитектура, на которую я решил в то время, заключалась в том, что каждое приложение будет иметь свою собственную базу данных и веб-корневое приложение. Каждое приложение поддерживает пул подключений к своей собственной базе данных и центральную базу данных для общих данных (логины и т. Д.).Стратегия пула соединений: хорошо, плохо или уродливо?
Сотрудник полагает, что эта стратегия не будет масштабироваться, потому что так много разных пулов подключений не будет масштабируемым и что мы должны реорганизовать базу данных так, чтобы все разные приложения использовали единую центральную базу данных и что любые изменения, которые могут быть уникальными для системы, должны быть отражены от одной базы данных, а затем использовать один пул, работающий от Tomcat. Он полагает, что существует множество «метаданных», которые идут по сети и поддерживают пул соединений.
Мое понимание заключается в том, что при правильной настройке использовать только столько подключений, сколько необходимо, в разных пулах (приложения с низким объемом, получающие меньше соединений, большие объемы приложений, получающих больше и т. Д.), Что количество пулов не по сравнению с числом подключений или более формально, что разница в накладных расходах, необходимых для поддержания 3 пулов из 10 соединений, незначительна по сравнению с 1 пулом из 30 соединений.
Основой для первоначального разбиения систем на дизайн с одним приложением и базой данных было то, что, вероятно, будут различия между приложениями, и каждая система может внести изменения в схему по мере необходимости. Аналогичным образом, это исключало возможность просачивания системных данных в другие приложения.
К сожалению, в компании нет сильного руководства, чтобы принять трудное решение. Хотя мой сотрудник поддерживает свои заботы только с неопределенностью, я хочу убедиться, что я понимаю последствия нескольких небольших баз данных/соединений по сравнению с одним большим пулом базы данных/пула.
Я не согласен с вашим коллегой. Если у вас есть n webapps, используйте n пулов, даже если они используют один и тот же сервер базы данных. Это дает вам лучшее разделение проблем, более тонкие настройки, лучшую изоляцию (если один webapp ест все подключения, почему другой должен быть затронут) и т. Д. Кроме того, я действительно не понимаю, почему уникальный пул будет масштабироваться лучше , Это ИМО просто не соответствует действительности. –