【发布时间】:2014-04-25 11:10:26
【问题描述】:
我有几个 java 应用服务器 (glassfish 3.0) 运行不同的应用程序,每个应用程序需要一个唯一的 postgresql 数据库,因此每个数据库需要一个不同的连接池。我的目标是使用被动从属设备提供主/从数据库服务器以实现冗余。问题在于,一方面,postgresql 的活动连接数的最佳点非常小,另一方面,活动连接的总体合理限制约为 1000 个。由于每个应用程序在高峰时间被更多的用户访问,每个连接池本身必须包含 50-100 个连接,以防止应用程序因大量并行 db io 而锁定。数据库服务器的整体负载相对较小,它只需要提供足够的连接。打开如此多的连接而其中大部分时间大部分时间都处于空闲状态,这感觉是错误的。
问题是,为所有应用程序提供(池化)数据库访问,同时为数据库提供回退冗余并为每个应用程序提供足够的并行连接以应对峰值负载,最好的方法是什么?
【问题讨论】:
标签: java postgresql glassfish connection-pooling