このトピックでは、読み書き分離に関するよくある質問に対する回答を提供します。
プライマリRDSインスタンスと読み取り専用RDSインスタンスの読み取り重みを変更した後、新しい読み取り重みが有効にならないのはなぜですか。
新しい読み取り重みは、新しい接続にのみ有効です。 既存の接続は再確立されないため、新しい読み取り重みは既存の接続には影響しません。
プライマリRDSインスタンスと読み取り専用RDSインスタンスの負荷が、インスタンスの読み取り重みに準拠しないのはなぜですか。
この問題は、次のシナリオで発生する可能性があります。
要求はトランザクションを含む。 トランザクションを含むすべてのリクエストは、プライマリRDSインスタンスにルーティングされます。 これらのトランザクションは、データを読み出すために実行されるものを含む。
データベースシステムは、プライマリまたは読み取り専用RDSインスタンスのエンドポイントを使用して接続されています。 このような場合、データベースシステムは、指定された読み取り重みに基づいてプライマリおよび読み取り専用RDSインスタンスにリクエストをルーティングしません。 データベースシステムが読み書き分離エンドポイントを使用してのみ接続されていることを確認します。
プライマリRDSインスタンスの読み取り重みが0であっても、多数の読み取りリクエストがプライマリRDSインスタンスにルーティングされるのはなぜですか。
この問題は、次のシナリオで発生する可能性があります。
トランザクションを含むすべてのリクエストは、プライマリRDSインスタンスにルーティングされます。 これらのトランザクションは、データを読み出すために実行されるものを含む。
読み取り重みがゼロでないすべての読み取り専用インスタンスが使用できないか、またはこれらのインスタンスのレイテンシが指定されたしきい値を超えています。 このような場合、データベースシステムはこれらの読み取り専用インスタンスへの読み取り要求のルーティングを停止します。
読み書きの分割により、データの読み取りをタイムリーにどのように保証しますか?
詳細については、「」をご参照ください。読み書き分離機能が有効になっている場合に、ApsaraDB RDS for MySQLインスタンスでデータを読み取るタイミングを確保するにはどうすればよいですか。.
API操作を呼び出して読み取り重みを設定するにはどうすればよいですか。
詳細については、「ModifyReadWriteSplittingConnection」をご参照ください。
読み書き分離エンドポイントのネットワークタイプを選択するにはどうすればよいですか。
アプリケーションがRDSインスタンスと同じVPCにデプロイされている場合は、データセキュリティと通信効率を確保するために内部エンドポイントを使用することを推奨します。 アプリケーションがオンプレミスのクライアントまたはRDSインスタンスとは別のネットワークにデプロイされている場合は、パブリックエンドポイントを使用して接続を確立することを推奨します。 ネットワークタイプを切り替える方法の詳細については、「ApsaraDB RDS MySQLインスタンスの読み書き分離アドレスのネットワークタイプの変更」をご参照ください。
読み書き分離エンドポイントと、プライマリRDSインスタンスの内部およびパブリックエンドポイントの違いは何ですか。
読み書き分離を有効にすると、読み書き分離エンドポイントが生成されます。 エンドポイントをアプリケーションに追加すると、すべてのリクエストはこのエンドポイントにルーティングされ、リクエストタイプとこれらのインスタンスの読み取り重みに基づいて、プライマリRDSインスタンスと読み取り専用RDSインスタンスにルーティングされます。
プライマリRDSインスタンスの内部エンドポイントまたはパブリックエンドポイントのみがアプリケーションで設定されている場合、すべてのリクエストはプライマリRDSインスタンスに送信されます。 読み書き分離を実装するには、アプリケーションでプライマリおよび読み取り専用RDSインスタンスのエンドポイントと読み取り重みを設定する必要があります。
読み書き分離エンドポイントを変更できますか?
読み書き分離エンドポイントは手動で変更できません。 読み書き分割を複数回有効または無効にすると、エンドポイントは変更されず、アプリケーションのエンドポイント設定を更新する必要はありません。 これにより、全体的なメンテナンスコストが削減されます。
読み取り専用RDSインスタンスを作成した場合、プライマリRDSインスタンスは影響を受けますか。
読み取り専用RDSインスタンスを作成すると、システムはセカンダリRDSインスタンスからデータをレプリケートします。 プライマリRDSインスタンスは影響を受けません。
読み取り専用 RDS インスタンスの読み取り重みを 0 に設定した後でも、読み取り専用 RDS インスタンスに接続できますか。
はい。読み取り専用RDSインスタンスの読み取り重みを0に設定しても、読み取り専用RDSインスタンスの内部エンドポイントまたはパブリックエンドポイントを使用して、読み取り専用RDSインスタンスに接続できます。 ただし、読み書き分離エンドポイントを使用して読み取り専用 RDS インスタンスに接続することはできません。 詳細については、「ApsaraDB RDS for MySQL インスタンスの内部エンドポイント、パブリックエンドポイント、ポート番号の確認および変更」をご参照ください。 この機能は、特定のワークロードのみを処理するように読み取り専用RDSインスタンスを設定するために使用されます。
MySQLを実行し、共有データベースプロキシ機能が有効になっているプライマリRDSインスタンスのすべての読み取り専用RDSインスタンスをリリースする場合、プライマリRDSインスタンスの共有データベースプロキシは影響を受けますか。
MySQLを実行し、共有データベースプロキシ機能が有効になっているプライマリRDSインスタンスの最後の読み取り専用RDSインスタンスをリリースすると、システムは共有データベースプロキシ機能によって提供される読み書き分離エンドポイントを削除します。 アプリケーションが読み書き分離エンドポイントを使用してRDSインスタンスに接続されている場合、アプリケーションはRDSインスタンスにアクセスできません。