私の会社では、 pgPool-II の「フェイルオーバー」、「ロード バランシング」 (そして最終的には「レプリケーション」 ) 機能を活用するためにpgPool-IIを使用する予定です。
ここでは、 Jakarta Tomcat Connector (JK)または同様のサービスを使用してクライアントとこれらのTomcatサーバー間のリンク (負荷分散) を行うサーバー クラスターによってホストされるJ2EE Tomcat Web アプリケーションがあるとします。また、Tomcatサーバー クラスターとデータベース クラスター間のリンクを行うためにpgPool-IIを使用するPostgreSQL 9.3データベースのクラスターがあると考えています。私たちのアプリケーションは、各ユーザーが (もちろんデータベースに関して) 異なる役割に関連付けられているマルチユーザー アプリケーションです。
pgPool-IIはpostgreSQLと同じプロトコルを使用しているため、通常はデータベースに接続するのと同じように、プールに接続するだけでよいことを知りました。
このメールのコピーでは、プール層が 2 つあるのは無意味なので、pgPool-IIに加えてJDBC Tomcat プールを使用する必要がないことがわかりました。プール タスクをJDBC Tomcat の poolに委譲するか、pgPool-IIに委譲しますか?
だから私の最後の質問は次のとおりです。
その場合、 JDBCを使用してpgPool-IIから適切に接続を取得するには、ユーザーがSQLリクエストを実行する必要があるたびに、 pgPool-IIへの新しい接続を要求する必要がありますか? パフォーマンスに影響しませんか?
最高のパフォーマンスを得るために、プール タスクを担当するのはどの部分ですか? JDBC Tomcat、 pgPool -II 、またはpgBouncerのような別のサービスですか? 最善のアプローチは何ですか?
前もって感謝します!
PS : 不明な点がある場合はお知らせください。投稿を編集します。