3 Bank and Stock-Tradingアプリケーションの実行
Bank and Stock-Tradingアプリケーションをデプロイおよび実行することで、MicroTxを使用して複数のマイクロサービス間でデータの一貫性を維持する方法を学習します。
注意:
この項で説明する手順は、テスト環境または開発環境専用です。本番環境では、これらの手順を使用してMicroTxを設定および使用しないでください。Bank and Stock-Tradingアプリケーションには複数のマイクロサービスが含まれており、分散型2フェーズ・コミット・トランザクション(XA)を使用します。Bank and Stock-Tradingアプリケーションを実行して、株式の売買および口座間の送金を行います。Bank and Stock-Tradingアプリケーションを実行すると、MicroTxによって、分散マイクロサービスとそのリソース・マネージャ間でトランザクションの一貫性がどのように確保されるかを確認できます。また、KialiやJaegerなどのツールを使用してMicroTxをKubernetesエコシステムと統合し、MicroTxとマイクロサービス間のリクエストのフローをビジュアル化します。
サンプル・アプリケーションを実行することは、MicroTxをよく理解するための最速の方法です
トピック:
- Bank and Stock-Tradingアプリケーションについて
Bank and Stock-Tradingアプリケーションは、MicroTxを使用してリクエストを調整しながら、分散トランザクションに参加するマイクロサービスを開発する方法を示します。このアプリケーションを使用して、一定額の出金または預入、および株式の売買を行うことができます。資金を移動する財務アプリケーションには強力かつグローバルな一貫性が必要であるため、このアプリケーションではXAトランザクション・プロトコルを使用します。 - Minikubeの構成とトンネルの起動
Minikubeを構成してから、MinikubeとKubernetesクラスタの間のトンネルを起動します。 - Keycloakの構成
Bank and Stock-Tradingアプリケーション・コンソールでは、Keycloakを使用してユーザーを認証します。 - すべてのリソースが準備完了であることの確認
Bank and Stock-Tradingアプリケーションを再デプロイし、リソースが使用可能であることを確認します。 - Bank and Stock-Tradingアプリケーションによる資金の送金
Bank and Stock-Tradingアプリケーションを実行して、資金を送金するとともに、マイクロサービス対応トランザクション・マネージャ(MicroTx)を使用してXAトランザクションを調整する方法を理解します。アプリケーションを実行した後、分散トレースを使用して、MicroTxとマイクロサービスの間でのリクエストのフローを理解します。サンプル・アプリケーションを実行することは、MicroTxをよく理解するための最速の方法です - Bank and Stock-Tradingアプリケーションによる株式の取引
Bank and Stock-Tradingアプリケーションを実行して、株式を売買するとともに、マイクロサービス対応トランザクション・マネージャ(MicroTx)を使用してXAトランザクションを調整する方法を理解します。アプリケーションを実行した後、分散トレースを使用して、MicroTxとマイクロサービスの間でのリクエストのフローを理解します。サンプル・アプリケーションを実行することは、MicroTxをよく理解するための最速の方法です - KialiおよびJaegerのデプロイ(オプション)
オプションで、KialiおよびJaegerを使用して、MicroTxの分散トランザクションを視覚化により追跡およびトレースできます。分散トレースを使用して、MicroTxとマイクロサービスの間でのリクエストのフローを追跡します。 - サービス・メッシュ・グラフおよび分散トレースの表示(オプション)
バックグラウンドでの動作、ならびに分散サービスおよびMicroTxによるリクエストの処理方法をビジュアル化するには、前のタスクで起動したKialiおよびJaegerダッシュボードを使用します。
3.1 Bank and Stock-Tradingアプリケーションについて
Bank and Stock-Tradingアプリケーションは、MicroTxを使用してリクエストを調整しながら、分散トランザクションに参加するマイクロサービスを開発する方法を示します。このアプリケーションを使用して、一定額の出金または預入、および株式の売買を行うことができます。資金を移動する財務アプリケーションには強力かつグローバルな一貫性が必要であるため、このアプリケーションではXAトランザクション・プロトコルを使用します。
次の図は、Bank and Stock-Tradingアプリケーションの様々なマイクロサービスを示しています。一部のマイクロサービスは、Autonomous Transaction Processingサーバーレス(ATP-S)インスタンスまたはリソース・マネージャに接続します。リソース・マネージャは、データベース、キューイング・システム、メッセージング・システム、キャッシュなどのステートフル・リソースを管理します。

ユーザーが株式ブローカ・サービスを使用して株式を購入すると、このアプリケーションによりコア・バンキング・サービスから資金が引き出され、XAトランザクションの作成によって同等の数の株式が預け入れられます。XAトランザクションでは、購入、販売、引出しおよび預入れなどのすべてのアクションが成功するか、1つ以上のアクションが失敗した場合にすべてがロールバックされます。
参加側マイクロサービスは、MicroTxクライアント・ライブラリを使用します。これが、コールバックを登録して、リソース・マネージャのためにコールバックの実装を提供します。図に示すように、MicroTxはリソース・マネージャと通信して、トランザクションをコミットまたはロールバックします。MicroTxは、トランザクションに関係する各リソース・マネージャに接続して、トランザクションを準備、コミットまたはロールバックします。参加側サービスは、リソース・マネージャにアクセスするための資格証明をコーディネータに提供します。株式ブローカ、コア・バンキング、ブランチ・バンキングおよびユーザー・バンキングの各マイクロサービスは、Spring Boot 3.xに基づいています。Spring RESTアプリケーションで使用可能なMicroTx Spring Bootスタータ・クライアント・ライブラリ・ファイルは、すべてのマイクロサービスとすでに統合されています。
また、トランザクション中に各マイクロサービスはリソース・マネージャを更新し、金額および株式の変更を追跡します。Bank and Stock-Tradingアプリケーションを実行すると、MicroTxによって、分散マイクロサービスとそのリソース・マネージャ間でトランザクションの一貫性がどのように確保されるかを確認できます。
-
MicroTxコーディネータは、参加側サービス間のトランザクションを管理します。
-
株式ブローカ・マイクロサービスはトランザクションを開始するため、トランザクション・イニシエータ・サービスと呼ばれます。ユーザーは、このマイクロサービスと対話して株式を売買します。新しいリクエストが作成されると、MicroTxライブラリで公開されるヘルパー・メソッドは、
begin()
メソッドを実行してトランザクションを開始します。このマイクロサービスには、コミット・コールおよびロールバック・コールを発行するビジネス・ロジックも含まれます。トランザクションを開始すると、株式ブローカ・サービスもトランザクションに参加します。株式売買のためのトランザクションを開始した後、株式ブローカ・サービスは、ユーザーのアカウントから株式を預け入れるか引き出すためのトランザクションにも参加します。株式ブローカ・サービスATPインスタンスのリソースを使用します。 -
コア・バンキング、ブランチ・バンキングおよびユーザー・バンキングの各サービスは、株式の取引に関連するトランザクションに参加するため、参加側サービスと呼ばれます。株式売買のためのトランザクションを開始することはありません。MicroTxライブラリには、参加側サービスがトランザクションに自動的に登録できるようにするヘッダーが含まれています。これらのマイクロサービスは、REST APIを公開して、口座残高を取得し、指定された口座で引出しまたは預入れを行います。コア・バンキングおよびブランチ・バンキングの各サービスでは、それぞれバンキング・サービスおよびブランチ・バンキング・サービスATPインスタンスのリソースも使用されます。
サービスはACID要件を満たす必要があるため、金額の引出し、送金、株式の預入れ、売却、金額の引落しまたは入金は、XAトランザクションのコンテキストでコールされます。
3.2 Minikubeの構成とトンネルの起動
Minikubeを構成してから、MinikubeとKubernetesクラスタの間のトンネルを起動します。
3.5 Bank and Stock-Tradingアプリケーションによる資金の送金
Bank and Stock-Tradingアプリケーションを実行して、資金を送金するとともに、マイクロサービス対応トランザクション・マネージャ(MicroTx)を使用してXAトランザクションを調整する方法を理解します。アプリケーションを実行した後、分散トレースを使用して、MicroTxとマイクロサービスの間でのリクエストのフローを理解します。サンプル・アプリケーションを実行することは、MicroTxをよく理解するための最速の方法です
資金送金リクエストを送信すると、コア・バンキング・サービスおよびブランチ・バンキング・サービスが相互に対話してこのタスクを実行します。次にコア・バンキング・サービスがブランチ・バンキング・サービスに金額の引落しリクエストを送信します。金額が指定の銀行口座から正常に引き落とされると、別の銀行口座に入金されます。マイクロサービスは、XAプロトコルとMicroTxを使用してトランザクションを管理します。XAトランザクションでは、金額の引落しおよび入金などのすべてのアクションが成功するか、1つ以上のアクションが失敗した場合にすべてのアクションがロールバックされます。
資金の送金が支店間で行われます。このサンプル・アプリケーションでは、支店は1つ(アリゾナ)のみであるため、コア・バンキングおよびブランチ・バンキングの各マイクロサービスが相互に対話します。
3.6 Bank and Stock-Tradingアプリケーションによる株式の取引
Bank and Stock-Tradingアプリケーションを実行して、株式を売買するとともに、マイクロサービス対応トランザクション・マネージャ(MicroTx)を使用してXAトランザクションを調整する方法を理解します。アプリケーションを実行した後、分散トレースを使用して、MicroTxとマイクロサービスの間でのリクエストのフローを理解します。サンプル・アプリケーションを実行することは、MicroTxをよく理解するための最速の方法です
株式の購入リクエストを送信すると、株式ブローカ・サービスはコア・バンキング・サービスから必要な金額を引き落とします。次にコア・バンキング・サービスがブランチ・バンキング・サービスに金額の引落しリクエストを送信します。金額が銀行口座から正常に引き落とされると、株式ブローカ・サービスは株式を購入し、購入した株式を口座に預け入れます。マイクロサービスは、XAプロトコルとMicroTxを使用してトランザクションを管理します。XAトランザクションでは、金額の引落しおよび株式の預入れなどのすべてのアクションが成功するか、1つ以上のアクションが失敗した場合にすべてのアクションがロールバックされます。
3.7 KialiおよびJaegerのデプロイ(オプション)
オプションで、KialiおよびJaegerを使用して、MicroTxの分散トランザクションを視覚化により追跡およびトレースできます。分散トレースを使用して、MicroTxとマイクロサービスの間でのリクエストのフローを追跡します。
次のコマンドを実行して、KialiおよびJaegerをMinikubeクラスタにデプロイします。
3.8 サービス・メッシュ・グラフおよび分散トレースの表示(オプション)
バックグラウンドでの動作、ならびに分散サービスおよびMicroTxによるリクエストの処理方法をビジュアル化するには、前のタスクで起動したKialiおよびJaegerダッシュボードを使用します。
- 新しいブラウザ・タブを開き、KialiダッシュボードのURLに移動します。たとえば、
http://localhost:20001/kiali
のようになります。 otmm
ネームスペースの「グラフ」を選択します。- JaegerダッシュボードのURLを新しいブラウザで開きます。たとえば、
http://localhost:16686
のようになります。 - 「サービス」ドロップダウン・リストで
istio-ingressgateway
を選択します。トレースのリストが表示され、各トレースがリクエストを表します。 - トレースを選択して表示します。