Sono responsabile dello sviluppo e della manutenzione di un gruppo di applicazioni Web incentrate su dati simili. L'architettura che ho deciso al momento era che ogni applicazione avrebbe il proprio database e l'applicazione web-root. Ogni applicazione gestisce un pool di connessioni al proprio database e un database centrale per dati condivisi (accessi, ecc.)Strategia del pool di connessioni: buona, cattiva o brutta?
Un collaboratore ha postulato che questa strategia non verrà ridimensionata perché non ci saranno così tanti diversi pool di connessione. scalabile e che dovremmo rifattorizzare il database in modo che tutte le diverse applicazioni utilizzino un singolo database centrale e che qualsiasi modifica che possa essere unica per un sistema debba essere riflessa da quel database e quindi utilizzare un singolo pool alimentato da Tomcat. Ha postulato che ci sono molti "metadati" che vanno avanti e indietro attraverso la rete per mantenere un pool di connessioni.
mia comprensione è che con una corretta messa a punto di utilizzare solo il maggior numero di collegamenti necessari tra le diverse piscine (applicazioni a basso volume sempre meno le connessioni, le applicazioni ad alto volume sempre più, etc.) che il numero di piscine non lo fa importa rispetto al numero di connessioni o più formalmente che la differenza di spese generali richiesta per mantenere 3 pool di 10 connessioni è trascurabile rispetto a 1 pool di 30 connessioni.
Il ragionamento alla base della rottura iniziale dei sistemi in una progettazione di un app-one-database era che ci sarebbero probabilmente differenze tra le app e che ogni sistema potrebbe apportare modifiche allo schema in base alle esigenze. Allo stesso modo, ha eliminato la possibilità di emorragia di dati di sistema attraverso altre app.
Purtroppo non c'è una forte leadership nell'azienda per prendere una decisione difficile. Sebbene il mio collega stia sostenendo le sue preoccupazioni solo con vaghezza, voglio assicurarmi di comprendere le implicazioni di più piccoli database/connessioni rispetto a un grande database/pool di connessioni.
Non sono d'accordo con il tuo collega. Se sono presenti n Webapp, utilizzare n pool, anche se utilizzano lo stesso server di database. Ciò ti offre una migliore separazione delle preoccupazioni, opzioni di ottimizzazione più precise, isolamento migliore (se una webapp mangia tutte le connessioni, perché l'altra dovrebbe essere influenzata), ecc. Inoltre, davvero non vedo perché una piscina unica scalerebbe meglio . Questo è solo IMO non è vero. –