プロモーションなどの高トラフィックイベント中に、PolarDB for MySQL クラスター内のすべての読み取り専用ノードがクラッシュまたはレプリケーションの中断により同時にダウンした場合、すべてのトラフィックはプライマリノードにルーティングされます。ノードのスペックアップ中に、これにより同時リクエストが急増し、プライマリノードが過負荷になり、サービス中断が発生する可能性があります。過負荷保護は、読み取り専用ノードが回復するまで、PolarProxy レイヤーで同時リクエストを自動的に速度制限することで、これを防ぎます。
仕組み
PolarProxy は、プライマリノードでの同時リクエスト数を継続的にサンプリングし、過去24時間のローリング履歴を保持します。
PolarProxy は、すべての読み取り専用ノードに障害が発生していることを検出すると、過負荷保護をアクティブ化します。
スロットリング: PolarProxy は、過去24時間の既存データの中央値を同時実行数制限として使用し、アクティブ接続を制限します。これはリーキーバケットアルゴリズムに基づいています。
サービス継続: 制限内のリクエストはプライマリノードにルーティングされます。
自動解除: 過負荷保護は、読み取り専用ノードが回復したとき、または60秒経過後のいずれか早い方に解除されます。
前提条件
開始する前に、以下を確認してください。
PolarProxy バージョン 2.8.1 以降
PolarDB for MySQL 5.6、5.7、または 8.0 クラスター
読み取り/書き込みエンドポイント (クラスターエンドポイント)
過負荷保護の有効化
[概要] ページの [クラスターエンドポイント] セクションで [変更] をクリックします。
[ノードの設定] ページで、過負荷保護を有効にします。
制限事項
過負荷保護は、読み取り/書き込みエンドポイントにのみ適用されます。読み取り専用エンドポイントではサポートされていません。
この機能は、すべての読み取り専用ノードに障害が発生した場合 (ノードクラッシュまたはプライマリデータベースとのレプリケーションの中断のいずれか) にのみトリガーされます。他のシナリオではアクティブ化されません。
例
次のチャートは、テスト中にすべての読み取り専用ノードでのレプリケーションが中断された場合に何が起こるかを示しています。過負荷保護がアクティブ化された後、プライマリノードへのリクエストレートは急増することなく横ばいになります。読み取り専用ノードが回復すると、保護が解除され、トラフィックは正常に再開されます。
