オンラインアプリケーションでは、リリース、スケールアウト、スケールイン、再起動などの操作が必要になります。Microservices Engine(MSE)は、上記の操作を実行する際にアプリケーションを保護するために、グレースフルスタートおよびシャットダウン機能を提供します。グレースフルスタートおよびシャットダウン機能は、サービスプリフェッチ、サービス登録の遅延、事前通知などの機能を提供します。このトピックでは、YAML でグレースフルスタートおよびシャットダウン機能を構成する方法について説明します。
グレースフルスタートおよびシャットダウン規則の構成
ACK クラスタ内のマイクロサービスアプリケーションに対して MSE マイクロサービスガバナンスを有効にします。詳細については、「ACK クラスタ内のマイクロサービスアプリケーションに対してマイクロサービスガバナンスを有効にする」をご参照ください。
アプリケーションの ワークロードグレースフルスタートグレースフルシャットダウン ページで、パラメータを構成します。パラメータの詳細については、「」および「」をご参照ください。
パラメータは、spec > template > metadata > labels で構成されます。
次の表に、パラメータを示します。
パラメータ
説明
デフォルト値
mse.lossless.enable
グレースフルスタート機能を有効にするかどうかを指定します。
true
false
false
mse.lossless.warmupTime
プリフェッチ期間。単位:秒。
120
mse.lossless.delayTime
サービス登録の遅延時間。単位:秒。このパラメータに x の値を指定すると、アプリケーションまたはサービスは、アプリケーションの起動後 x 秒でマイクロサービスレジストリに登録されます。
0
mse.lossless.notice
プロバイダがシャットダウンされたときに、コンシューマに事前に通知を送信するかどうかを指定します。
false
サンプルコード:
mse.lossless.enable: 'true' mse.lossless.delayTime: '30' mse.lossless.warmupTime: '60' mse.lossless.notice: 'false'
結果の確認
MSE コンソール にログインし、上部のナビゲーションバーでリージョンを選択します。
左側のナビゲーションペインで、Microservices Governance > Application Governance を選択します。
Application list ページで、目的のアプリケーションのリソースカードをクリックします。
左側のナビゲーションペインで、Traffic management をクリックします。表示されるページの Graceful Start/Shutdown タブで、グレースフルスタート規則の構成が YAML の構成と同じであることを確認します。アプリケーションを起動またはシャットダウンするときに、[トラフィック管理] ページの [グレースフルスタート/シャットダウン] タブで、イベントと 1 秒あたりのクエリ数(QPS)のトレンドチャートが YAML の構成と一致することを確認できます。
YAML でグレースフルスタートおよびシャットダウン規則を構成した後、アプリケーションはすぐに再起動されます。アプリケーションが再起動されると、構成された規則が有効になります。
YAML でグレースフルスタートおよびシャットダウン規則のパラメータを構成しない場合、パラメータのデフォルト値が自動的に使用されます。
アプリケーションの [ワークロード] ページで YAML を使用してアプリケーションのグレースフルスタートおよびシャットダウン規則を変更し、MSE コンソールでも規則を変更した場合、YAML を使用して行った変更が優先されます。MSE コンソールでグレースフルスタートおよびシャットダウン規則を変更した場合、アプリケーションが再起動された後、YAML で構成された規則によってコンソールの既存の規則が上書きされます。