Я отвечаю за разработку и обслуживание группы веб-приложений, которые сосредоточены вокруг похожих данных. Архитектура, на которую я решил в то время, заключалась в том, что каждое приложение будет иметь свою собственную базу данных и веб-корневое приложение. Каждое приложение поддерживает пул соединений в своей собственной базе данных и центральную базу данных для общих данных (логины и т.д.).
Сотрудник полагает, что эта стратегия не будет масштабироваться, потому что так много разных пулов подключений не будут масштабируемыми и что мы должны реорганизовать базу данных, чтобы все разные приложения использовали единую центральную базу данных и что любые изменения которые могут быть уникальными для системы, должны быть отражены от одной базы данных, а затем использовать один пул, работающий от Tomcat. Он полагает, что существует множество "метаданных", которые идут по сети и поддерживают пул соединений.
Мое понимание заключается в том, что при правильной настройке использовать только столько подключений, сколько необходимо, в разных пулах (приложения с низким объемом, которые получают меньше соединений, приложения с большими объемами объема и т.д.), что количество пулов не имеет значения по сравнению с количество подключений или более формально, что разница в накладных расходах, необходимых для поддержания 3 пулов из 10 соединений, незначительна по сравнению с 1 пулом из 30 соединений.
Причины первоначального разбиения систем на дизайн с одним приложением-базой данных состояли в том, что, вероятно, будут различия между приложениями, и каждая система может внести изменения в схему по мере необходимости. Точно так же это исключало возможность просачивания системных данных в другие приложения.
К сожалению, в компании нет сильного лидерства, чтобы принять твердое решение. Хотя мой сотрудник поддерживает свои проблемы только с неопределенностью, я хочу убедиться, что я понимаю последствия нескольких небольших баз данных/соединений по сравнению с одним большим пулом базы данных/пула.