Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


9.2.3 Orchestrator

Orchestratorのパラメタを説明します。

Orchestratorのパラメタは、Orchestrator-Service、Orchestrator-Service(SQL)、Alternate-Service、およびAlternate-Service(SQL)に設定します。

〈この項の構成〉

(1) jp.co.Hitachi.soft.hmppctoのパラメタ

各パラメタの接頭辞は、jp.co.Hitachi.soft.hmppctoです。

表9‒6 Orchestratorのjp.co.Hitachi.soft.hmppctoのパラメタ

パラメタ

説明

設定範囲

デフォルト値

instance-id

Orchestratorを一意に識別するためのIDです。

32文字以内の任意の文字列を設定してください。

同じMediatorに複数のOrchestratorから接続する場合は、Orchestratorごとに異なる値を設定してください。

String

32文字

なし

必ず設定してください。

learner.consensus-type

トランザクションの決着に使用する分散合意のアルゴリズムを設定します。アルゴリズムの詳細は、取扱説明書「HMP-PCTO テクニカルガイド」の分散合意習得方式の説明を参照してください。

String

Three-Quarters |

Privileged-Value

なし

必ず設定してください。

mediator.name

MediatorのpodのDNS名中のStatefulSet名を設定してください。

MediatorのpodはStatefulSetのため、DNS名は次の形式です。この中のStatefulSet名を設定します。

<StatefulSet名>-<連番>.<Service名>.<Namespace名>.svc.cluster.local

例えばDNS名が

「mediator-0.mediator.space1.svc.cluster.local」の場合は、「mediator」を設定してください。

HMP-PCTOは、Kubernetesと連携してmediator.nameとmediator.name-suffixをキーにOrchestratorが接続するMediatorを決定します。

String

なし

必ず設定してください。

mediator.name-suffix

MediatorのpodのDNS名中のService名以降の文字を指定してください。

MediatorのpodはStatefulSetのため、DNS名は次の形式です。この中のService名以降の文字列を設定します。

<StatefulSet名>-<連番>.<Service名>.<Namespace名>.svc.cluster.local

例えば、DNS名が「mediator-0.mediator.space1.svc.cluster.local」の場合は、「.mediator.space1.svc.cluster.local」を設定してください。

String

なし

必ず設定してください。

mediator.port

MediatorのHMP-PCTOがgRPCを受信するポート番号を指定します。

Mediatorのパラメタgrpc.portに設定した値と同じ値を設定してください。

Integer

1,024-65,535

20,551

mediator.size

トランザクションの合意に参加するMediator数を設定してください。

learner.consensus-typeにThree-Quartersを設定した場合は、5以上かつ奇数の値を設定してください。

設定する値については、取扱説明書「HMP-PCTO テクニカルガイド」のMediator数の設定要件に関する説明を参照して決定してください。

Integer

2-16

なし

必ず設定してください。

mediator.initial-size

Orchestrator起動時にチェックを行うMediator数を設定してください。

mediator.sizeで設定した数以上の値を設定してください。mediator.sizeで設定した数より小さい値を設定した場合は、Orchestratorの初期化時に異常終了します。

設定する値については、取扱説明書「HMP-PCTO テクニカルガイド」のMediator数の設定要件に関する説明を参照して決定してください。

Integer

2-64

mediator.size設定値

mediator.minimum-start-size

Orchestratorでトランザクション開始時に、mediator.sizeで設定した数のMediatorの起動を確認できなかった場合に、トランザクションを開始する最小限のMediator数を設定してください。

mediator.sizeで設定した数以下の値を設定してください。mediator.sizeで設定した数より大きい値を設定した場合はOrchestratorの初期化時に異常終了します。

トランザクション開始時のMediatorの起動数がこのパラメタに設定した数未満の場合は、トランザクションの開始に失敗します。

learner.consensus-typeにThree-Quartersを設定した場合は、5以上かつ奇数の値を設定してください。

設定する値については、取扱説明書「HMP-PCTO テクニカルガイド」のMediator数の設定要件に関する説明を参照して決定してください。

Integer

2-16

mediator.size設定値

mediator.termination-thread-pool-size

OrchestratorからMediatorへの送信に使用するスレッド数を指定してください。

1トランザクションの終了時にmediator.size指定値分のスレッドを使用して送信します。スレッドが不足した場合は、キューイングしてスレッドが空くのを待ってから送信します。

スレッドの空き待ちを回避するための理論上の必要なスレッド数は、サービスの同時実行数×mediator.sizeです。

設計指針とチューニング方法については、「3.12.1 スレッドプール」を参照してください。

Integer

1-1,000

20

mediator.discovery-retry-count

Orchestrator起動時に、トランザクションの合意に必要なMediatorが起動しているかのチェックをリトライする回数を設定します。

Mediatorの起動が確認できるまで最大で、mediator.discovery-retry-count ×mediator.discovery-interval-in-millis(ミリ秒)待ち合わせます。

Integer

0-100

18

mediator.discovery-interval-in-millis

Orchestrator起動時に、トランザクションの合意に必要なMediatorが起動しているかのチェックをリトライする際のリトライ間隔をミリ秒単位で設定します。

Integer

1-60,000

10,000

branch.qualifier.list

APがサービスを呼び出す際に、HMP-PCTOがトランザクションブランチを識別するために付与する識別子を設定してください。

REST通信で呼び出す場合は、次の形式で指定します。

<サービスのホスト名>:<サービスのポート番号><サービスのエンドポイント>@識別子
gRPC通信で呼び出す場合は、次の形式で指定します。
<gRPCサーバのホスト名>:<gRPCサーバのポート番号><protobufで定義したサービス名>/<protobufで定義したメソッド名>@識別子

識別子は、32文字以内で設定してください。

複数のサービスを設定する場合は「,」で区切って設定してください。

設定例:

host1:80/service1@qualifier1,host2:80/service2@qualifier2

String

なし

省略した場合、および指定しなかったURLの識別子はHMP-PCTOがUUIDを生成して設定します。

orchestrator.grpc.use-tls

暗号化通信をするかどうかを指定します。

  • true:暗号化通信をします。

  • false:暗号化通信をしません。

Boolean

true | false

false

orchestrator.grpc.tls.client.server-auth.certificate

接続先サーバのサーバ証明書を発行したCAの証明書(X.509のPEM形式)ファイルの絶対パス名を指定します。

String

なし

暗号化通信をする場合は、必ず指定してください。

orchestrator.grpc.tls.client.client-auth.certificate

クライアント認証をする場合に、自プロセスのクライアント証明書ファイル(X.509のPEM形式)の絶対パス名を指定します。

String

なし

暗号化通信でクライアント認証をする場合は、必ず指定してください。

orchestrator.grpc.tls.client.client-auth.key

クライアント認証をする場合に、自プロセスのクライアント証明書を作成した秘密鍵ファイル(pkcs8のPEM形式)の絶対パス名を指定します。

String

なし

暗号化通信でクライアント認証をする場合は、必ず指定してください。

orchestrator.grpc.tls.session.cache-size

SSLセッション情報のキャッシュ数を指定します。

0を指定すると、gRPCのデフォルト値が使用されます。

Integer

0-2,147,483,647

0

orchestrator.grpc.tls.session.timeout-in-seconds

キャッシュしたSSLセッション情報の保持時間(秒)を指定します。

0を指定すると、gRPCのデフォルト値が使用されます。

Integer

0-65,535

0

orchestrator.grpc.keepalive.interval-in-seconds

PING要求電文の送信間隔を秒単位で指定します。

0を指定した場合は、PING要求電文を送信しません。1〜9を指定した場合は10秒となります。

ネットワーク機器の無通信監視タイマなどによるTCPコネクション切断回避が目的の場合は、無通信監視タイマ値より小さい値を指定してください。

Integer

0-100,000

0

orchestrator.grpc.keepalive.timeout-in-seconds

PING応答電文の応答待ち時間を秒単位で指定します。

PING要求電文の送信後、このタイマの指定値以内にPING応答電文を受信できない場合はTCPコネクションを切断します。

Integer

1-65,535

60

orchestrator.grpc.watchtime-in-seconds

Mediatorへの要求電文に対する応答電文の待ち時間を秒単位で指定します。

0を指定した場合は、タイマ監視をせずに無限に応答を待ちます。

Orchestratorからトランザクションに参加したMediatorにcommit/rollbackの要求電文を送信して、すべての通信でこのタイマがタイムアウトした場合、Orchestratorは応答の待ち合わせを終了し、全Mediatorが障害と判断してトランザクションの決着結果は不明としてAPに応答します。そのため、応答電文の待ち時間はトランザクション制御には依存せず、APの業務処理として許容できる待ち時間となります。

Integer

0-65,535

100

lb.list-timeout-in-seconds

Kubernetesからのサービス一覧取得の待ち時間を秒単位で指定します。タイマ指定値以内に応答を受信できない場合は、Podの起動処理を異常終了します。

Integer

1-10,800

60

use-scaling

スケーリング対応機能を使用するかどうかを指定します。

  • true:スケーリング対応機能を使用します。

  • false:スケーリング対応機能を使用しません。

Orchestrator、Entity-Module、SQL-Participant、TCC-Participant、TP1-BridgeおよびMediatorそれぞれに設定するこのパラメタには、同じ値を指定してください。

Boolean

true | false

true

set-routing

ルーティング方法を指定します。

  • inner:HMP-PCTOが提供するルーティング機能を使用し、ルーティングします。

  • user:ユーザ側でロードバランサを構成し、ロードバランサでルーティングします。

このパラメタはuse-scalingパラメタにtrueを指定している場合だけ有効になります。

Orchestrator、Entity-Module、SQL-Participantそれぞれのこのパラメタの設定値はすべて統一してください。

String

inner | user

inner

(凡例)−:該当しません。