オンラインアプリケーションは、リリース、スケールアウト、スケールイン、再起動などの日常的な操作を受けます。Microservices Engine (MSE) は、前述の操作を実行する際にアプリケーションを保護するためのグレースフル起動およびシャットダウン機能を提供します。グレースフル起動機能には、サービスプリフェッチと遅延登録が含まれます。このトピックでは、グレースフル起動の設定方法について説明します。
前提条件
マイクロサービスガバナンスが有効化されています。詳細については、「マイクロサービスガバナンスの有効化」をご参照ください。
Container Service for Kubernetes (ACK) クラスター内のマイクロサービスアプリケーションに対してマイクロサービスガバナンスが有効化されています。詳細については、「ACK クラスター内のマイクロサービスアプリケーションに対してマイクロサービスガバナンスを有効化する」をご参照ください。
使用上の注意
Nacos、ZooKeeperレジストリを使用する Spring Cloud アプリケーションに対して、サービスプリフェッチ機能を有効にできます。
サービスプリフェッチ機能は、Spring Cloud フレームワークのデフォルトのロードバランサークラスである ZoneAwareLoadBalancer に基づいて Spring Cloud アプリケーションに実装されます。Spring Cloud アプリケーションでこのクラスを変更すると、サービスプリフェッチ機能は無効になります。
低トラフィックプリフェッチ機能は、mse-loadbalance をロードバランサーとして使用して Dubbo アプリケーションに実装されます。Dubbo アプリケーションにロードバランサーを設定している場合は、そのロードバランサーを無効にする必要があります。そうしないと、MSE が提供する低トラフィックプリフェッチ機能は Dubbo アプリケーションに対して無効になります。
ほとんどの場合、ゲートウェイはレジストリを使用して呼び出されるのではなく、API を使用して呼び出されます。したがって、MSE が提供する低トラフィックプリフェッチ機能はゲートウェイに対して無効です。
低トラフィックプリフェッチの設定
コールドスタートしたアプリケーションが起動直後に大量のリクエストを受信すると、内部リソースの初期化が不完全なためにリクエストのブロッキングやエラーなどの問題が発生する可能性があります。これらの問題に対処するために、サービスプリフェッチ機能を使用して、アプリケーションの起動後に少数のリクエストを送信し、内部リソースが完全に初期化されるようにすることができます。
MSE コンソールにログインし、トップナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。表示されたページで、管理したいアプリケーションのリソースカードをクリックします。
アプリケーション詳細ページで、左側のナビゲーションウィンドウの [トラフィック管理] をクリックし、[グレースフル起動/シャットダウン] タブをクリックします。
Graceful Start/Shutdown タブの Graceful Start セクションで、Preheating duration (seconds) フィールドの横にある
アイコンをクリックします。lossless online ダイアログボックスで、Preheating duration (seconds) パラメーターを設定します。次に、OK をクリックします。プリフェッチ期間: 次回アプリケーションインスタンスを起動する際のプリフェッチに必要な時間を設定します。デフォルト値: 120。単位: 秒。有効値: 0~86400。値 86400 は 24 時間に相当します。
説明アプリケーションで初めてサービスプリフェッチ機能を使用する場合は、このパラメーターのデフォルト値を使用することをお勧めします。サービスプリフェッチにこのパラメーターのデフォルト値を使用してトラフィック損失が発生した場合は、このパラメーターの値を調整してプリフェッチパフォーマンスを最適化できます。
Graceful Start セクションの右上隅にあるスイッチをオンにします。Prompt message ダイアログボックスで、OK をクリックします。
低トラフィックプリフェッチ機能が有効になるには、サービス利用者とサービスプロバイダーの両方で Graceful Start スイッチをオンにする必要があります。
遅延登録の設定
アプリケーションの初期化プロセスが複雑な場合、アプリケーションは同時に登録および初期化される可能性があります。アプリケーションは、完全に初期化される前にレジストリに登録されている場合があります。この場合、コンシューマーによってアプリケーションが呼び出されると、エラーが返される可能性があります。遅延登録機能は、アプリケーションが完全に初期化された後にのみレジストリに登録されるようにするのに役立ちます。
MSE コンソールにログインし、トップナビゲーションバーでリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。表示されたページで、管理したいアプリケーションのリソースカードをクリックします。
アプリケーション詳細ページで、左側のナビゲーションウィンドウの [トラフィック管理] をクリックし、[グレースフル起動/シャットダウン] タブをクリックします。
Graceful Start/Shutdown タブの Graceful Start セクションで、Delayed registration time (seconds) パラメーターを 0 から 3600 の範囲の値に設定します。値 3600 は 1 時間に相当します。次に、
アイコンをクリックします。Graceful Start セクションの右上隅にあるスイッチをオンにします。Prompt message ダイアログボックスで、OK をクリックします。
遅延登録機能は、アプリケーションの再起動後に有効になります。