我们正在使用PHP重写使用Java的Web应用程序。我想,但我不确定,我们可能会遇到有关连接池的问题。应用程序本身是多租户的,是“独立数据库”和“单独模式”的组合。
对于每个Postgres数据库服务器实例,可以有多个数据库(名为schemax_XXX),其中包含多个架构(架构为租户)。注册时,可能会发生以下两种情况之一:
所有租户都通过中央注册局(也是Postgres数据库)了解。建立会话后,注册表将解析租户的主机,数据库和架构,并为该HTTP请求建立数据库会话。
现在,我认为我在这里看到的问题有两个:
那么,甚至假设可以使用连接池是否可行?
对于第一个问题,我想可以使用支持JMX的池,并且在创建新的schemas_XXX数据库时创建新的数据源。更大的问题是大量的池。为此,我想,应该使用某种池管理器,它可以终止没有打开连接的池(并且按需启动池)。我没有找到任何支持这一点的东西。
我有哪些选择?或者我应该咬紧牙关然后回到PgBouncer之外的进程外连接池,并为每个请求建立一个普通的JDBC连接,类似于我们现在用PHP处理它的方式?
答案 0 :(得分:1)
一些事情: