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