私は、同様のデータを中心としたWebアプリケーションのグループの開発と維持を担当しています。私が当時決定したアーキテクチャは、各アプリケーションが独自のデータベースとWebルートアプリケーションを持つということでした。各アプリケーションは、独自のデータベースへの接続プールと共有データ(ログインなど)用の中央データベースを保持します。接続プールの戦略:Good、Bad、またはUgly?
非常に多くの異なる接続プールを持つことができないため、異なるアプリケーションのすべてが単一の中央データベースを使用するようにデータベースをリファクタリングする必要があり、システムに固有の変更がそのデータベースから反映され、Tomcatで動かされる単一のプールを使用する必要がある。彼は、接続プールを維持するためにネットワークを行き来する多くの "メタデータ"が存在すると主張しています。
私の理解では、プールの数がないことを異なるプール間で必要な数だけ接続を使用するための適切なチューニングと(低容量アプリが少ないの接続を取得し、大量のアプリなど、より多くを得る)ということですコネクションの数と比較して、またはそれ以上の形式では、3つの10のコネクションを維持するために必要なオーバーヘッドの差は、1つのコネクションの1つのコネクションと比較して無視できる。
当初1-APP-1 - データベース設計にシステムを破るの背後にある理由は、おそらくアプリケーションの間で、必要に応じて、各システムは、スキーマに変更を加えることができることの違いがあるように予定されているということでした。同様に、システムデータが他のアプリに流出する可能性もなくなりました。
は、残念ながら難しい決断をする会社で強いリーダーシップがありません。私の同僚は漠然とした心配だけをバックアップしていますが、複数の小さなデータベース/接続と1つの大きなデータベース/接続プールの影響を理解しておきたいと思います。
私はあなたの同僚に同意しません。 Webアプリケーションがn個ある場合は、同じデータベースサーバーを使用していてもn個のプールを使用します。これにより、問題の分離、チューニングオプションの改善、より良いアイソレーション(1つのWebアプリケーションがすべての接続を食い止める場合、他のものが影響を受ける理由など)などが得られます。 。これはIMOだけではありません。 –