Choosing a deployment architecture¶
フェールオーバーマネージャーは、Postgres接続プーラーと接続ライブラリを使用して、 EDB Postgres Advanced Serverにさまざまな高可用性オプションを提供します。これらのオプションは、高可用性アーキテクチャに影響します。
データベースの高可用性を確保するために、フェールオーバーマネージャーのコア機能をPostgres接続ライブラリ(クライアント接続フェールオーバー)および接続プーラーと組み合わせることができます。
Failover Managerの機能を使用して、EDBは高可用性環境を実行するための4つの基本アーキテクチャを設計しました。
:フェールオーバーマネージャーには、すぐにVIPアドレスを管理する重要な機能があります。 VIPアドレスを使用すると、アプリケーションは、プライマリデータベースサーバーにルーティングされている単一のIPアドレスに接続できます。このアーキテクチャは、環境でVIPアドレスを使用できる場合に実行する最も基本的なソリューションです。
libpqやjdbcなどのPostgreSQLクライアントライブラリにより、クライアント接続のフェイルオーバーが可能になります。クライアント接続フェイルオーバーでは、接続文字列に複数のサーバー(host=srv1、srv2)が含まれ、クライアントライブラリは利用可能なホストをループして、利用可能で読み書き操作が可能な接続を見つけます。この機能により、クライアントはスイッチオーバー中にマスターをフォローできます。このソリューションは、仮想IPアドレスに依存しません。このようなクライアント構成を設定できるすべての環境で使用できます。
:PgBouncerは、接続プーリングやトラフィックを停止するオプションなどの機能を追加します。クライアントとPostgresデータベースサーバー間のプロキシとして使用することもできます。フェールオーバーマネージャーの統合オプションを活用して、フェールオーバー中にPgBouncerの再構成を実行することにより、PgBouncerを使用してトラフィックを正しいプライマリデータベースサーバーにルーティングできます。
Pgpool-IIは、クライアントとPostgresデータベースサーバー間のプロキシとして使用される別のツールです。 EDB Pgpool-IIは、ウォッチドッグを使用したクラスターモードでの実行、VIPの管理、読み取り専用のスケーラビリティなどの機能を追加します。フェールオーバーマネージャーには、EDB Pgpool-IIと統合して、データベースフェールオーバー操作中にトラフィックを別のプライマリにリダイレクトするネイティブ機能があります。
これらの機能は、各アーキテクチャでサポートされています。
クライアント接続フェイルオーバー
Features |
Failover Manager with VIP |
Failover Manager with client connect failover |
Failover Manager with EDB PgBouncer |
Failover Manager with EDB Pgpool-II |
|---|---|---|---|---|
Connection pooling |
Yes |
Yes |
||
Runs on cloud (no VIP) |
Yes |
Yes |
Yes |
|
Halt traffic option |
Yes |
|||
Read-only scalability |
Yes (using multiple connection factories) |
Yes |
||
Clustered proxy |
Yes |
|||
Proxy integration |
ssh |
PCP |
||
Minimum servers required |
3 |
3 |
5 |
6 |
Complexity |
Low |
Low |
Medium |
High |
Network hops |
1 |
1 |
||
Failover duration |
Low |
Medium |
Low |
Low |