PolarDB PolarProxyは、データベースシステムとアプリケーションの間に存在し、自動読み書き分割、トランザクション分割、接続プールなどの高度な機能を提供します。 これらの高度な機能を使用するには、PolarDBクラスターエンドポイントに接続します。
PolarDBアーキテクチャとPolarProxyの概要
標準のPolarDBクラスターは、プライマリノードと1つ以上の読み取り専用ノードで構成されます。 デフォルトでは、PolarDBには、プライマリエンドポイントとクラスターエンドポイントの2種類のエンドポイントがあります。 PolarDB PolarProxyはクラスターエンドポイント機能をサポートしています。 クラスターエンドポイントには、読み取り /書き込みエンドポイントと読み取り専用エンドポイントが含まれます。 読み書きエンドポイントは読み書き分離をサポートします。 詳細については、「読み書き分離」をご参照ください。 読み取り専用エンドポイントを使用すると、PolarDBクラスターは、接続数に基づいて読み取り要求を読み取り専用ノードに均等に分散できます。
読み書き分離
PolarDBクラスターは、読み書き分離を提供します。 この機能により、PolarDBクラスターは、クラスターエンドポイントを使用してアプリケーションからの読み取りおよび書き込み要求を分散できます。 PolarDBクラスターの組み込みプロキシは、書き込み要求をプライマリノードに転送し、読み取り要求をロードに基づいてプライマリノードまたは読み取り専用ノードに転送します。 ノード上で処理されない要求の数は、ノード上の負荷を示す。 詳細については、「読み書き分離」をご参照ください。
よくある質問
レコードを挿入した直後にレコードを取得できないのはなぜですか?
これは、読み書き分割アーキテクチャでは、プライマリノードと読み取り専用ノードとの間のデータ複製中に複製遅延が発生する可能性があるためです。 ただし、PolarDBはセッションの一貫性をサポートします。 これにより、セッション内の更新を照会できます。 したがって、データレプリケーションの完了後に挿入されたレコードを取得できます。
読み取り専用ノードにワークロードがないのはなぜですか?
デフォルトでは、トランザクションのリクエストはプライマリノードにのみルーティングされます。 ストレステストにsysbenchを使用する場合は、sysbench 0.5の
-- oltp-skip-trx=on
をコードに追加するか、sysbench 1.0のコードに-- skip-trx=on
を追加できます。 これはBEGINおよびCOMMITステートメントをスキップします。 トランザクションの数が多いと読み取り専用ノードのワークロードが低くなりすぎる場合は、チケットを起票してトランザクション分割機能を有効にすることができます。1 つのノードが他のノードよりも多くのリクエストを受け取るのはなぜですか。
リクエストは、ワークロードに基づいて各ノードに配信されます。 ワークロードが低いノードは、より多くのリクエストを受け取ります。
PolarDBは遅延ゼロのデータアクセスをサポートしていますか?
いいえ、PolarDBは遅延ゼロのデータアクセスをサポートしていません。 PolarDBクラスターのプライマリノードと読み取り専用ノードが通常のワークロードを処理する場合、プライマリノードと読み取り専用ノードの間でデータがレプリケートされるときのレプリケーション遅延はミリ秒単位です。 クラスターエンドポイントの読み書きモードが読み書き (自動読み書き分離) の場合、PolarDBは遅延ゼロのデータアクセスをサポートしません。 遅延ゼロのデータアクセスが必要な場合は、すべての読み取りおよび書き込み要求をPolarDBクラスターのプライマリノードに送信できるように、アプリケーションをプライマリエンドポイントに接続できます。
新しい読み取り専用ノードは、読み取り要求を自動的に受信できますか。
はい。読み取り専用ノードが追加された後に作成された読み書き分離接続は、リクエストを読み取り専用ノードに転送します。 読み取り専用ノードが追加される前に、読み取り /書き込み分割接続が作成されるとします。 新しい読み取り専用ノードにリクエストを転送するために接続が必要な場合は、アプリケーションを再起動するか、他の操作を実行して接続を閉じて接続を再確立する必要があります。
関連する API 操作
API | 説明 |
指定されたPolarDBクラスターのパブリックエンドポイントを作成します。 | |
指定されたPolarDBクラスターのカスタムクラスターエンドポイントを作成します。 | |
指定されたPolarDBクラスターに関するエンドポイント情報を照会します。 | |
指定されたPolarDBクラスターのクラスターエンドポイントの設定を変更します。 | |
カスタムクラスターエンドポイントなど、指定されたPolarDBクラスターのエンドポイントを変更します。 | |
指定したPolarDBクラスターのプライマリエンドポイント、デフォルトクラスターエンドポイント、またはカスタムクラスターエンドポイントのパブリックエンドポイントをリリースします。 | |
指定されたPolarDBクラスターのカスタムクラスターエンドポイントを削除します。 |