取引一部のビジネス要件では、一連の操作の一部ではなく、すべてを実行する必要があります。たとえば、転送操作は次のようになります。
これら 2 つの SQL ステートメントは、すべて実行する必要があります。何らかの理由で最初のステートメントが成功し、2 番目のステートメントが失敗した場合は、すべてを元に戻す必要があります。 複数のステートメントをまとめて操作するこの機能は、データベース トランザクションと呼ばれます。データベース トランザクションにより、トランザクションのスコープ内のすべての操作が成功または失敗することを保証できます。トランザクションが失敗した場合、SQL ステートメントが実行されなかった場合と同じ結果となり、データベース データは変更されません。 マイクロサービストランザクションに関係するすべての操作をサービス内に配置できる場合、さまざまな言語のトランザクション関連ライブラリを使用して、複数の操作をトランザクション操作全体として簡単に実装できます。 しかし、注文の生成などの一部のサービスでは、在庫、クーポン、ギフト、口座残高など、多くの操作を実行する必要があります。システムの複雑さが増すと、これらすべての操作を 1 つのサービスに実装しようとすると、結合度が高くなりすぎて、メンテナンス コストが非常に高くなります。 複雑なシステムの場合、現在普及しているマイクロサービス アーキテクチャは非常に優れたソリューションです。このアーキテクチャでは、複雑なシステムを、独立して開発および保守される多数のマイクロサービスに分割できます。 サービスは分割されていますが、注文自体のロジックでは全体として複数の操作が必要であり、すべてが成功するかすべてが失敗するかのいずれかになるため、新たな課題が生じます。さまざまなマイクロサービスに分散しているローカル トランザクションを 1 つの大きなトランザクションに結合して、全体として動作するようにする方法は、分散トランザクションが解決する必要がある問題です。 分散トランザクション簡単に言えば、分散トランザクションは、さまざまな小さな操作で構成された大規模な操作です。これらの小さな操作は異なるサーバーに分散され、異なるアプリケーションに属します。分散トランザクションでは、これらの小さな操作がすべて成功するか、すべて失敗するかを保証する必要があります。本質的に、分散トランザクションは、異なるデータベース間でのデータの一貫性を確保するように設計されています。 分散トランザクション ソリューションには以下が含まれます。
最も単純なものを見てみましょう 1000XA は、X/Open 組織によって提案された分散トランザクション仕様です。 XA 仕様は主に、(グローバル) トランザクション マネージャー (TM) と (ローカル) リソース マネージャー (RM) 間のインターフェイスを定義します。 MySQLなどのローカルデータベースはXAのRMの役割を果たす XA は 2 つの段階に分かれています。 最初のフェーズ (準備): 参加しているすべての RM がトランザクションの実行を準備し、必要なリソースをロックします。参加者の準備ができたら、TM に準備ができたことを報告します。フェーズ 2 (コミット/ロールバック): トランザクション マネージャー (TM) は、すべての参加者 (RM) の準備ができていることを確認すると、すべての参加者にコミット コマンドを送信します。 現在、MySQL、Oracle、SQL Server、PostgreSQL など、ほとんどの主流データベースは XA トランザクションをサポートしています。 ローカル データベースが XA をどのようにサポートしているかを見てみましょう。 ステージ 1 準備
練習するここまで紹介したので、分散トランザクションの理解を深めるために、マイクロサービスで XA トランザクションを完了する練習をしてみましょう。ここでは、分散トランザクションのマネージャーとして DTM を使用して、XA デモの 1 つを実行します。 goをインストールする mysqlをインストールする dtmを入手
MySQLの設定
例を実行する
ログから XA 部分の出力を見つけることができ、最終的にトランザクションを正常に送信できます。
全体のやり取りのタイミングの詳細は次のとおりです。 コードは次のとおりです。
要約するこの時点で、XA 分散トランザクションの完全な紹介は完了です。 分散トランザクションに関するより包括的な知識については、分散トランザクションの最も古典的な7つのソリューションを参照してください。 この短い記事では、トランザクション、分散トランザクション、および XA トランザクションを処理するマイクロサービスについて概要を説明しました。興味のある学生は、dtm を通じて分散トランザクションの学習を継続できます。 |
<<: 2020 年に IT プロフェッショナルが取得すべき 8 つの優れたクラウド セキュリティ認定資格
>>: スマートトラベルは「次のステップ」を迎えており、ファーウェイクラウドは西村で業界リーダーと議論している
現在、何千もの業界がクラウド コンピューティングとクラウド ネイティブを採用し、デジタル イノベーシ...
最近、多くの人が Xuepeng に「SEO には Web サイトの構築方法を学ぶ必要がありますか?...
これらの概念は非常に一般的ですが、初心者はそれらの違いやつながりを理解できない可能性があります。これ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています今、劇場で...
レッド・ホット・チリ・ペッパーズは最近、ニューシングル「Look Around」をリリースしました。...
電子商取引のブランドは、電子商取引ウェブサイトの成功の鍵であり、ユーザーがウェブサイトで消費するかど...
クラウド コンピューティングは成長を続けており、中小企業に多くの機能を提供しています。クラウド コン...
ウェブデザイナーになることは夢ではありません。子供の頃、私たちの多くはエンジニアや教師になることを夢...
多くの組織は、特に自律的な許可とアクセス権と組み合わせることで、サイバーセキュリティの将来を計画する...
Racknerd は、米国独立記念日の VPS プロモーションを開始しました。このプロモーションは、...
BOC Securitiesのプライベートクラウドプラットフォームが正式に運用を開始し、BOC Se...
過去 18 か月間、テクノロジーは多くの企業にとって救世主であることが証明されました。パンデミックが...
Amazon セラーとしてこのプラットフォームで成功するかどうかは、次の 2 つの要素にかかっていま...
ニューヨークを拠点とするゲームチケット販売サイト TiqIQ は本日、シリーズ A ラウンドで 17...
ホストドメイン名とはあまり関係ない記事を投稿します。それを見た時に、みんなにシェアしたいと思いました...