连接池策略:好、坏还是丑陋?
我负责开发和维护一组以类似数据为中心的 Web 应用程序。我当时决定的架构是,每个应用程序都有自己的数据库和Web根应用程序。每个应用程序都维护一个连接到其自己的数据库的连接池和一个用于共享数据(登录名等)的中央数据库。
一位同事一直认为,这种策略不会扩展,因为拥有这么多不同的连接池将无法扩展,我们应该重构数据库,以便所有不同的应用程序都使用单个中央数据库,并且任何可能对系统唯一的修改都需要从该数据库反映出来,然后使用由Tomcat提供支持的单个池。他假设有很多“元数据”在网络上来回传输,以维护连接池。
我的理解是,通过适当调整以在不同池中仅使用所需数量的连接(低容量应用程序获得较少的连接,高容量应用程序获得更多连接等),池的数量与连接数相比并不重要,或者更正式地说,与1个池(30个连接)相比,维护3个池(10个连接)所需的开销差异可以忽略不计。
最初将系统分解为一个应用程序一个数据库设计的原因是,应用程序之间可能存在差异,并且每个系统都可以根据需要对架构进行修改。同样,它消除了系统数据渗入其他应用程序的可能性。
不幸的是,公司没有强有力的领导来做出艰难的决定。虽然我的同事只是含糊其辞地支持他的担忧,但我想确保我了解多个小型数据库/连接与一个大型数据库/连接池的后果。