Estoy a cargo de desarrollar y mantener un grupo de aplicaciones web que se centran en datos similares. La arquitectura que decidí en ese momento era que cada aplicación tendría su propia base de datos y aplicación web raíz. Cada aplicación mantiene un grupo de conexión a su propia base de datos y una base de datos central para datos compartidos (inicios de sesión, etc.)Estrategia de grupo de conexión: bueno, malo o feo?
Un compañero de trabajo ha postulado que esta estrategia no se ampliará porque no habrá tantos grupos de conexiones diferentes escalable y que deberíamos refactorizar la base de datos para que todas las diferentes aplicaciones usen una única base de datos central y que cualquier modificación que pueda ser exclusiva de un sistema deba reflejarse desde esa única base de datos y luego utilizar un único grupo con tecnología de Tomcat. Él ha postulado que hay una gran cantidad de "metadatos" que van y vienen en la red para mantener un grupo de conexiones.
Mi entendimiento es que con el ajuste adecuado para utilizar solamente tantas conexiones como sea necesario a través de las diferentes piscinas (aplicaciones de bajo volumen cada vez menos conexiones, aplicaciones de alto volumen cada vez más, etc.) que el número de piscinas no lo hace En comparación con el número de conexiones o más formalmente, la diferencia en la sobrecarga requerida para mantener 3 grupos de 10 conexiones es insignificante en comparación con 1 grupo de 30 conexiones.
El razonamiento detrás de romper inicialmente los sistemas en un diseño de una aplicación de una sola base de datos es que probablemente habrá diferencias entre las aplicaciones y que cada sistema podría hacer modificaciones en el esquema según sea necesario. Del mismo modo, eliminó la posibilidad de que los datos del sistema se desbordaran a otras aplicaciones.
Desafortunadamente no hay un liderazgo fuerte en la empresa para tomar una decisión difícil. Aunque mi compañero de trabajo respalda sus preocupaciones solo con vaguedad, quiero asegurarme de que entiendo las ramificaciones de múltiples pequeñas bases de datos/conexiones frente a una gran base de datos/grupo de conexiones.
No estoy de acuerdo con su compañero de trabajo. Si tiene n webapps, use n pools, incluso si usan el mismo servidor de base de datos. Esto te ofrece una mejor separación de preocupaciones, opciones de ajuste más finas, mejor aislamiento (si una aplicación web come todas las conexiones, ¿por qué debería afectar a la otra), etc. Además, realmente no veo por qué una agrupación única escalaría mejor? . Esto es IMO simplemente no es cierto. –