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