PolarDBクラスターのPolarProxyは、アプリケーションとクラスター間のプロキシとして機能します。 アプリケーションからすべての要求を受信してルーティングし、自動読み書き分離、負荷分散、一貫性レベル、接続プール、過負荷保護などの高度な機能を提供します。 PolarProxyは使いやすく、維持しやすく、高可用性と優れたパフォーマンスを提供します。 PolarDBクラスターエンドポイントに接続して、PolarProxyの機能を使用できます。
アーキテクチャ
cluster EditionのPolarDBクラスターは、プライマリノードと複数の読み取り専用ノードで構成されます。 デフォルトでは、PolarDBクラスターには、プライマリエンドポイントとクラスターエンドポイントの2種類のエンドポイントがあります。 クラスターエンドポイントはPolarProxyによって提供されます。 クラスターエンドポイントは、読み書き (自動読み書き分離) モードまたは読み取り専用モードで使用できます。
PolarProxyエンタープライズ版
次のPolarProxy Enterpriseエディションが利用可能です: Standard Enterprise EditionおよびDedicated Enterprise Edition。
Standard Enterprise Editionは、汎用クラスターで使用されます。 このエディションでは、物理CPUリソースを共有できます。 そのCPUリソースは、クラスターのCPUリソースとは独立して割り当てられます。 デフォルトでは、このエディションに割り当てられているCPUコアは、クラスター内のノードのCPUコアの総数の6分の1に相当します。
Dedicated Enterprise EditionはDedicatedクラスターで使用されます。 このエディションは専用のCPUリソースを使用し、安定性が向上します。 そのCPUリソースは、クラスターのCPUリソースとは独立して割り当てられます。 デフォルトでは、このエディションに割り当てられているCPUコアは、クラスター内のノードのCPUコアの総数の4分の1に相当します。
2つのエディションの違いを次の表に示します。
項目 | Standard Enterprise Edition | 専用エンタープライズ版 |
課金方法 | 無料だ | |
リソースタイプ | ビジネス負荷に基づいて数秒以内にスマートエラスティックスケーラビリティを提供する共有物理CPUリソース。 | パフォーマンスの安定性を向上させる物理リソースの排他的使用。 |
アーキテクチャ | 高可用性冗長アーキテクチャ。 | |
クラスターの仕様 | 最小仕様: 2コア。 | |
接続 | 無制限です。 | |
IOPS | 以前のエディションと比較して、クラスターストレージの最大IOPSは50% 増加しています。 さまざまなクラスター仕様の最大IOPSについては、「PolarDB For MySQL Enterprise Editionのコンピュートノード仕様」をご参照ください。 | |
読み取り専用ノードの仕様 | 読み取り専用ノードとプライマリノードの構成は必ずしも同じではありません。 ビジネス負荷に基づいて設定をダウングレードし、コストを削減できます。 | |
読み取り専用ノードの数 | 最大15の読み取り専用ノード。 | |
エンドポイント | 1つのプライマリエンドポイントと7つのクラスターエンドポイント。 | |
ホットスタンバイでのフェイルオーバー | 接続とトランザクションは中断されず、5〜10秒間一時的にブロックされます。 | |
一貫性 |
| |
接続プール | サポートされています。 | |
トランザクション分離 | サポートされています。 | |
割り込み保護 (永続接続) | サポートされています。 | |
データマスキング (セキュリティ用) | サポートされています。 | |
設定変更中のビジネスの安定性 | サポートされています。 | |
マルチマスタークラスタ (データベース /テーブル) | サポートされています。 | |
数秒以内のComputeノードのスケールアウト | サポートされています。 | リソースの可用性を確保するためのリソースの排他的使用。 |
プロキシ調整保護 (まもなく利用可能) | サポートされています。 |
課金
PolarProxy Enterprise Editionを無料で使用できます。
次の表に、PolarProxy Enterprise editionのエディション切り替えポリシーを示します。
エディション | 購入タイプ | エディション切り替えポリシー |
Cluster Edition | 新しく購入したクラスター | 2021年12月9日現在、新しく購入したクラスターはPolarProxy Enterprise Editionのみをサポートしています。 |
既存の従量課金クラスター | 既存のサブスクリプションクラスターの場合、PolarProxyは2021年12月9日に自動的にPolarProxy Enterprise Editionに切り替えられます。 | |
既存のサブスクリプションクラスター | 既存のサブスクリプションクラスターの場合、PolarProxyは2021年12月9日に自動的にPolarProxy Enterprise Editionに切り替えられます。 |
制限事項
PolarDB Cluster Editionのクラスターのみが、クラスターエンドポイントとPolarProxyをサポートしています。
使用上の注意
PolarProxyは、デフォルトおよびカスタムクラスターエンドポイントの圧縮プロトコルをサポートしていません。
クラスターエンドポイントの使用後にトランザクション分割機能を有効にしない場合、トランザクション内のすべてのリクエストがプライマリノードに転送されます。
クラスターエンドポイントを使用してクラスターに接続した後に
SHOW PROCESSLIST
ステートメントを実行すると、システムはすべてのノードの結果を返します。マルチステートメントを実行するか、ストアドプロシージャを呼び出すと、現在の接続に対する後続のすべての要求がプライマリノードに転送されます。 読み書き分離機能を使用するには、現在の接続を閉じてクラスターに再接続する必要があります。
PolarDBクラスターエンドポイントへの最大接続数に制限はありません。 接続の最大数は、クラスター内の計算ノードの仕様によって異なります。 アプリケーションが読み書き分離をサポートするクラスターエンドポイントを使用してクラスターに接続する場合、アプリケーションはクラスター内の各計算ノードへの接続を確立します。 この場合、アプリケーションが使用できる最大接続数は、単一のコンピュートノードの最大接続数です。 アプリケーションが読み取り専用モードでクラスターエンドポイントを使用してクラスターに接続する場合、アプリケーションはクラスター内の1つのコンピュートノードにのみ接続を確立します。 この場合、アプリケーションが使用できる最大接続数は、クラスターエンドポイントに関連付けられているすべての読み取り専用ノードの最大接続数の合計です。 読み書き分離モードでクラスターエンドポイントを使用してクラスターに接続するアプリケーションの場合、トランザクションレベルの接続プール機能を使用して、アプリケーションが使用できる最大接続数を増やすことができます。 詳細については、「接続プール」トピックの「トランザクションレベルの接続プール」セクションをご参照ください。
読み取り専用ノードを追加または再起動した後に、読み取り /書き込み分離をサポートするセッションが作成された場合、読み取り要求は読み取り専用ノードに転送されます。 読み取り専用ノードを追加または再起動する前に、読み取り /書き込み分割をサポートするセッションが作成された場合、読み取り要求は読み取り専用ノードに転送されません。 これらの読み取り要求を読み取り専用ノードに転送するには、接続を閉じてクラスターに再接続する必要があります。 たとえば、アプリケーションを再起動して新しい接続を確立できます。
ストアドプロシージャを呼び出したり、
SET NAMES utf8mb4;SELECT * FROM t1;
などの複数のステートメントを実行するときは、環境変数を変更しないでください。 それ以外の場合、プライマリノードと読み取り専用ノードから読み取られたデータに一貫性がありません。アプリケーション接続プール機能を使用してURLにアクセスするときに、ネットワークの問題やその他の予期しないシナリオによるパケット損失によってアプリケーション接続プールがハングしないようにするには、
connectTimeout
パラメーターとsocketTimeout
パラメーターをURLに追加することをお勧めします。 パラメーターの詳細については、「パラメーター」をご参照ください。 例:java url: jdbc:mysql:// ip:port/db?connectTimeout=60000&socketTimeout=300000;
PolarProxyの仕様のアップグレード
ほとんどのアプリケーションシナリオでは、PolarProxy Enterprise Editionのデフォルト仕様で十分です。 ストレステストを実行するか、サービスのスループットが高い場合、PolarProxy Enterprise Editionの仕様は、PolarProxyのワークロードに基づいてリアルタイムで自動的にアップグレードされ、ビジネス要件を満たします。 以前のバージョンの仕様pf PolarProxyを手動でアップグレードすることもできます。
クラスター内のPolarProxyは、クラスターのCPUコアを使用しません。 したがって、PolarProxy仕様をアップグレードしても、クラスターで使用可能なCPUコアの数は減少しません。
PolarProxy Enterprise Editionは無料で提供されます。 したがって、PolarProxy仕様のアップグレード中にコストは発生しません。
PolarProxyの仕様をアップグレードする方法の詳細については、「PolarProxyの仕様のアップグレード」をご参照ください。
関連する API 操作
API 操作 | 説明 |
PolarDBクラスターのパブリックエンドポイントを作成します。 | |
PolarDBクラスターのカスタムエンドポイントを作成します。 | |
PolarDBクラスターのエンドポイント情報を照会します。 | |
PolarDBクラスターのクラスターエンドポイントの設定を変更します。 | |
PolarDBクラスターのカスタムクラスターエンドポイントなどのエンドポイントを変更します。 | |
PolarDBクラスターのクラスターエンドポイントを削除します。 この操作を実行して、プライベートカスタムクラスターエンドポイントを削除することはできません。 | |
PolarDBクラスターのカスタムクラスターエンドポイントを削除します。 |