我的公司计划使用pgPool-II以受益于其“故障转移”、“负载平衡”(以及最终的“复制”)功能。
我们在这里考虑我们有一个由服务器集群托管的J2EE Tomcat Web 应用程序,其中Jakarta Tomcat 连接器 (JK)或类似服务用于在客户端和这些Tomcat服务器之间建立链接(负载平衡)。此外,我们认为我们有一个PostgreSQL 9.3数据库集群,其中pgPool-II用于在Tomcat服务器集群和数据库集群之间进行链接。我们的应用程序是一个多用户应用程序,其中每个用户都与不同的角色相关联(当然就数据库而言)。
我了解到pgPool-II使用与postgreSQL相同的协议,所以要连接到池,我们只需要像我们通常连接到数据库一样连接到它,对吧?
在这个邮件副本中,我看到有 2 个池层是没有用的,所以除了pgPool-II之外不需要使用JDBC Tomcat 池。要么我们将 pool 任务委托给JDBC Tomcat pool,要么我们将它委托给pgPool-II,对吧?
所以我最后的问题是:
在这种情况下,如何使用JDBC从pgPool-II正确获取连接,每次用户需要执行SQL请求时,我是否必须简单地要求与pgPool-II建立新连接?不影响性能?
哪个部分应该负责池任务以获得最佳性能?JDBC Tomcat、pgPool-II还是其他服务,如pgBouncer?最好的方法是什么?
提前致谢!
PS:如果有些地方不清楚,请告诉我,我会编辑我的帖子。