TCCとは何ですか? TCC は Try、Confirm、Cancel の略です。これは、2007 年に発表された「分散トランザクションを超えた生活: 背教者の意見」と題された論文の中で、パット ヘランドによって初めて提案されました。 TCC構成TCCは3つの段階に分かれています
TCC 分散トランザクションには、従来の XA 分散トランザクションと同じように、次の 3 つの役割があります。
銀行間送金に似た業務を行う場合、送金 (TransOut) と入金 (TransIn) は異なるマイクロサービスに存在します。正常に完了した TCC トランザクションの一般的なシーケンス図は次のとおりです。 TCCネットワーク異常グローバル トランザクション プロセス全体を通じて、TCC ではさまざまなネットワーク異常が発生する可能性があります。通常は、空のロールバック、べき等性、中断などです。 TCC の異常は SAGA や信頼性の高いメッセージングなどのトランザクション モードに似ているため、この記事「分散トランザクションの 7 つの古典的なソリューション」のサブトランザクション バリアのセクションで、異常に対するすべてのソリューションについて説明します。 TCC実践次に、TCC取引の具体的な開発を行います。 現在 TCC で利用できるオープン ソース フレームワークは主に Java 言語であり、seata が最も代表的です。この例では nodejs を使用し、使用される分散トランザクション フレームワークは dtm です。これは分散トランザクションを非常にエレガントにサポートします。 TCCの構成について詳しく説明します。 次に、具体的なTry/Confirm/Cancel処理関数を書いてみましょう。
この時点で、各サブトランザクションの処理機能は正常であり、TCCトランザクションが開かれて分岐呼び出しが行われます。
この時点で、完全な TCC 分散トランザクションが書き込まれました。 完全な成功例を実行したい場合は、この例yedf/dtmcli-node-sampleを参照してください。実行は非常に簡単です。
TCC ロールバック銀行がユーザー2に金額を振り込む準備をしているときに、ユーザー2の口座に異常を発見し、失敗を返した場合はどうなりますか?トランザクション失敗の相互作用のタイミング図を示します。 これと成功した TCC の違いは、サブトランザクションが失敗を返すと、その後グローバル トランザクションがロールバックされ、各サブトランザクションのキャンセル操作が呼び出されて、グローバル トランザクションが完全にロールバックされるようになることです。 まとめこの記事では、TCC の理論的知識を紹介し、通常の正常な完了と正常なロールバックを含む、TCC トランザクションの記述プロセスの完全な例を示しました。この記事を通じて読者の皆様にはTCCについて深く理解して頂けたのではないかと思います。 分散トランザクションに関するより包括的な知識については、「分散トランザクションの最も古典的な 7 つのソリューション」を参照してください。 この記事で使用されている例は、yedf/dtm から抜粋したものです。複数のトランザクション モード (TCC、SAGA、XA) と、トランザクション メッセージのクロス言語サポートをサポートします。 golang、python、Java、PHP、nodejs などの言語のクライアントをサポートしています。各言語のSDKをご参照ください。サブトランザクション バリア機能を提供して、べき等性、中断、空の補償などの問題をエレガントに解決します。 この記事を読んだ後は、https://github.com/yedf/dtm プロジェクトにアクセスし、スターを付けてサポートしてください。 |
>>: 顧客がクラウドコンピューティングベンダーに知りたい2つのこと
Pacificrack はシステムを再インストールできません。どこで Pacificrack のシス...
2012年は、Baidu Statistics、Baidu Thumb、Baidu Browser、...
[51CTO.com からのオリジナル記事] 10 年前、ジャック・マー氏は「クラウドなしに未来はな...
今日は、弊社のSEO最適化研修に参加した学生のSEO事例分析を見てみましょう。彼のウェブサイトの状況...
インターネット上には2つの人気のテンプレート販売業者があります。1つはここで紹介するtemplate...
私たちはオリジナル記事の代筆業を営んでいますが、クライアントからよく「なぜ私たちのために書いてくれる...
私は鄭州でほぼ 1 年間働いており、4 ~ 5 か月間 Web サイトの最適化に取り組んできました。...
皆様にお知らせしたいのですが、ovh はサーバーの新バージョンをリリースしました。以前の CPU は...
atcloud.net の最新の子供の日イベントが始まりました。クラウド VPS とストレージ VP...
ユニバーサル プレーヤー Qvod の後に、Baidu Video が登場しました。これら 2 つの...
私のデビュー記事が A5 ウェブマスター プラットフォームに掲載されたときはうれしかったです。今日は...
テンセントテクノロジーニュース(ファン・シャオドン)5月6日のニュースによると、国内のビットコイン取...
皆さんこんにちは。前回、「稲作農家として6年間の経験:良いドメイン名の選び方」という記事を書きました...
[51CTO.com オリジナル記事] 2015 年に設立された ZStack は、3 年間の開発期...
オンライン マーケティングが Web サイトのキーワード ランキングに与える影響はますます大きくなり...