7.4.2 HMP-PCTOのKubernetesアプリケーションのグレースフルシャットダウンが開始できる条件
HMP-PCTOのKubernetesアプリケーションのグレースフルシャットダウンが開始できる条件を次の表に示します。
|
Kubernetesアプリケーション |
グレースフルシャットダウンが開始できる条件(番号順に満たす必要あり) |
|---|---|
|
Orchestrator-Service |
|
|
Relay-Service |
|
|
Entity-Service(SQL) |
|
|
Entity-Service(TCC) |
|
|
Orchestrator-Service(SQL) |
|
|
Alternate-Service |
|
|
Alternate-Service(SQL) |
|
|
Mediator |
|
|
TP1-Bridge |
|
各Kubernetesアプリケーションのグレースフルシャットダウンが開始できる条件について、詳細を説明します。
- 各Kubernetesアプリケーションの条件
-
各Kubernetesアプリケーションは、新規トランザクションを受け付けない状態にすることを1つ目の条件とします。
この理由は、新規トランザクションが流入していると、後続で確認している条件をいつまでも満たせなくなり、グレースフルシャットダウンを開始できなくなるためです。
- Orchestrator-ServiceおよびAlternate-Serviceの条件
-
Orchestrator-ServiceおよびAlternate-Serviceは、トランザクション決着に関わるPodのため、トランザクションをできる限り決着させるために「トランザクションルートで処理中の件数」が0件であることを条件とします。
また、Orchestrator-ServiceおよびAlternate-Serviceは、ユーザのリクエストハンドラでユーザアプリケーション処理を実施しているため、リクエストへの応答をできる限り完了させるために「処理中リクエスト件数」が0件であることも条件とします。
- Relay-Serviceの条件
-
Relay-Serviceは、ユーザのリクエストハンドラでユーザアプリケーション処理を実施しているため、リクエストへの応答をできる限り完了させるために「処理中リクエスト件数」が0件であることを条件とします。
なお、Relay-Serviceは、トランザクション決着に関わるPodではないため、ほかのKubernetesアプリケーションのような「未決着トランザクション件数」は条件に含みません。
また、グレースフルシャットダウンが開始できる条件が「処理中リクエスト件数」だけなので、グローバルトランザクションが処理中でも、自Podはシャットダウンすることがあります。このとき、Relay-Serviceがスケーリング対応機能を使用している場合は、ほかのKubernetesアプリケーションからRelay-Serviceへ再度リクエストが来たとき、並行して稼働している別Podでリクエストを受け付けます。
- Entity-Service(SQL)、Entity-Service(TCC)、およびTP1-Bridgeの条件
-
Entity-Service(SQL)、Entity-Service(TCC)、およびTP1-Bridgeは、トランザクション決着に関わるPodのため、トランザクションをできる限り決着させるために「未決着トランザクション件数」が0件であることを条件とします。
Entity-Service(SQL)、Entity-Service(TCC)、およびTP1-Bridgeは、前述のOrchestrator-ServiceやRelay-Serviceのユーザアプリケーション処理を完了させるために、できる限り応答を返す必要があります。そのため、「処理中リクエスト件数」が0件であることも条件とします。
- Orchestrator-Service(SQL)およびAlternate-Service(SQL)の条件
-
Orchestrator-Service(SQL)およびAlternate-Service(SQL)は、トランザクション決着に関わるPodであるため、トランザクションをできる限り決着させるために、「トランザクションルートで処理中の件数」が0件であることと、「未決着トランザクション件数」が0件であることの両方を満たすことを条件とします。
また、Orchestrator-Service(SQL)およびAlternate-Service(SQL)は、ユーザアプリケーション処理を完了させるために、可能な限り応答を返す必要があります。そのため、「処理中リクエスト件数」が0件であることも条件とします。
- Mediatorの条件
-
Mediatorは、トランザクション決着に関わるPodのため、トランザクションをできる限り決着させるために「未決着トランザクション件数」が0件であることを条件とします。
なお、Mediatorは、ユーザアプリケーション処理を含まないため、ほかのKubernetesアプリケーションのような「処理中リクエスト件数」は条件に含みません。