この記事では、fescar 分散トランザクションについて説明します (写真とテキスト)。必要な方は参考にしていただければ幸いです。
1. fescar 分散トランザクション (概要)
1.1. 概要
Fescar は、分散トランザクションを解決する Alibaba のオープンソース分散トランザクション ミドルウェアです。マイクロサービス シナリオで直面するトランザクションの問題を、ビジネスへの侵入を一切発生させずに効率的に解決します。
1.2. Fescar の開発履歴
2014 年、Alibaba ミドルウェア チームは、グループ内のアプリケーションに分散トランザクション サービスを提供する TXC (淘宝網トランザクション コンストラクター) をリリースしました。
2016 年、TXC は製品変革を行い、GTS (グローバル トランザクション サービス) として Alibaba Cloud に上陸し、当時アユンのパブリック クラウドおよび独自のクラウド ソリューションにおける業界唯一のクラウド分散トランザクション製品となりました。 、多くの外部顧客にサービスを提供し始めました。
2019 年以来、アリババのミドルウェア チームは、TXC と GTS の技術蓄積に基づいて、コミュニティと協力してこの分散トランザクション ソリューションを構築するオープンソース プロジェクト Fescar (Fast & EaSy Commit And Rollback、FESCAR) を立ち上げました。
1.3. 設計の本来の意図
ビジネスへの侵入なし
高パフォーマンス
1.4.1.4.1.設計概念図
は、グローバル トランザクションの実行ステータスを維持します。グローバル トランザクションのコミットまたはロールバックを調整および推進します。
、 はグローバル トランザクション を開く責任を負い、最終的にグローバル トランザクションを開始しますcommit または global return ロールする解像度。
。ブランチの登録、ステータスのレポート、トランザクション コーディネーターからの指示の受け取り、ブランチ (ローカル) トランザクションの推進を担当します。コミットとロールバック。
にあります。RM は本質的にデータベースそのものです (提供することにより)。アプリケーションで使用するドライバー)。
の形式でミドルウェア層としてデプロイされます。 は、データベース自体 プロトコルのサポート。もちろん では、データベースが XA プロトコルをサポートする必要はありません。これは、マイクロサービス ベースのアーキテクチャにとって非常に重要です。アプリケーション層は、ローカル トランザクションと分散トランザクション用の 2 つの異なるデータベース ドライバー セットに適応する必要がありません。
同時に、ローカルトランザクションが終了すると、
ブランチトランザクション
グローバル ロックはブランチのフェーズ 2 が終了するまで保持されます。
この設計により、ブランチ トランザクションによるリソース (データと接続) のロック時間が大幅に短縮され、全体的な同時実行性とスループットを向上させる基盤が提供されます。) を使用する必要があります。
Fescar の JDBC データ ソース エージェントはビジネス SQL を解析し、ローカル トランザクション#を使用して、更新前後のビジネス データのデータ ミラーリング をロールバック ログ に整理します。 ## の ACID 機能は、同じローカル トランザクションでビジネス データの更新とログの書き込みのロールバックをコミットします。
exists
# が必要であることが保証されます。
解決策がグローバル ロールバックの場合、RM はコーディネーターからロールバック リクエストを受信し、XID とブランチ ID を通じて対応するロールバック ログ レコードを検索し、ロールバック レコードを通じてフィードバックを生成します。 SQL を更新して実行し、ブランチのロールバックを完了します。
1.4.6. ブランチの基本的な動作パターン
ブランチ登録: ブランチ トランザクションのデータ操作が実行される前に、次のブランチ トランザクション データ操作を既に実行されているトランザクションに含めるためにコーディネーターに登録する必要があります。オープンされたグローバルトランザクションの管理では、ブランチ登録が成功した後にのみデータ操作を実行できます。
ステータス報告: ブランチ トランザクションのデータ操作が完了した後、その実行結果をトランザクション コーディネーターに報告する必要があります。
ブランチ送信: コーディネーターによって発行されたブランチ トランザクション送信リクエストに応答し、ブランチ送信を完了します。
ブランチ ロールバック: コーディネーターによって発行されたブランチ トランザクション ロールバック リクエストに応答し、ブランチ ロールバックを完了します。
1.4.7. AT モード ブランチの動作モード
1.4.8. MTパターンブランチの動作パターン
1.4.9. 混合モード
という目的を達成できます。AT モードがサポートできる場合は AT モードを使用し、AT モードが一時的にサポートできない場合は代わりに MT モードを使用します。さらに、当然のことながら、MT モードで管理される非トランザクション リソースも、トランザクションをサポートするリレーショナル データベース リソースとともに同じ分散トランザクション管理に含めることができます。 1.5. 暫定バージョンの計画v0.1.0
## マイクロサービス フレームワークのサポート: Dubbo#v2.0.0
#########サポート
1.6. 概要
## を推奨します。 #1.7. Github オープンソース アドレス
https://github.com/alibaba/fescar/以上がfescar 分散トランザクションの詳細な紹介 (写真とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。