3詳細--- Seata分散トランザクションは、トランザクションのフレームワーク分散します

トランザクションを分散しているものを1詳細分散トランザクション---

詳細分散トランザクションソリューション2 ---

3詳細--- Seata分散トランザクションは、トランザクションのフレームワーク分散します

ここでは、分散トランザクションのためのアリSeataオープンソースフレームワークを導入しました。

1 Seata はじめに

Seata (旧称 Fescar )アリ 18 オープンソースの分散トランザクションのためのフレームワーク。 Fescar 分散トランザクションのためのオープンソースのフレームワークフィールドに大きな影響。オープンソースの大きなとして、Fescar アリからGTS(PS:もちろん、コストが許すならば、直接使用することができGTSのうち、電荷量に応じて)、二から一一は、かつての人気注意して開き、いくつかの試練に耐えてきました。Fescarは後でSeataと改名しました
Fescarは、 それが分散されているが、トランザクション2相コミットが、それは解決 XAを の欠点のいくつかを
 
  • シングルポイントの問題:
  • 同期ブロック Fescar ローカル・トランザクションがないように、リソースの解放に提出されました、再び2つの段階、第一段階XAは再び2準備するコミットフェーズリソースがロックされている、とFescar、コミット非同期操作をするだけでなく、性能を向上させる主要なキー。
  • データの矛盾の部分がある場合はコミット失敗し、fescar-サーバは、現状の結果に基づいて、異なる再試行戦略であるモードと枝のトランザクションを返します。そしてfescar 実際には、単にデータベースをコミットする人を見たときに、ローカル・トランザクションは段階で提出されたデータベースが一貫しているとき。
  • これは、単一のデータベースのみに使用することができます Fescarは二つのモード、提供していますAT MTをではATのモード総務リソースはACIDの中でサポートしている任意のデータベースにすることができMT 無制限のリソースとトランザクションモード、キャッシュすることができ、ファイルすることができ、上の別のとそうであってもよいです。
もちろん、この2つのモードが混合することができます。
一方 Fescarは また、近くに保持さ 0 侵略のビジネスの利点、唯一のシンプルな構成 Fescar プロキシデータの、コメント、プラスUndologテーブルを処理し、我々が望むものを達成することができます。
 

2原則

Fescar 一緒に現地情勢の異なるマイクロサービスにおける配信数は次のように構成され、グローバル・トランザクションを形成するので、分散トランザクションブランチとしてローカルトランザクションを:
マネージャートランザクション(TM) コントロールの境界線のグローバル・トランザクションは、グローバルトランザクションを開くための責任があり、そして最終的には世界的なグローバルコミットする解像度やロールバックを起動します。
マネージャリソース(RM) コントロール総務支店は、支店は、登録、ステータスレポートを担当し、コミットやロールバックドライブブランチ(ローカル)トランザクション、命令事務コーディネーターを受けます。
典型的な分散トランザクション処理:
  1. TM TC グローバル・トランザクションの開放を要求して、グローバル・トランザクションが正常に作成され、グローバルにユニークな生成されたXIDを
  2. XIDのマイクロサービスコールリンクの文脈で普及。
  3. RM へのTCは、分岐トランザクションがに組み込まれる予定登録XIDのグローバルトランザクションに対応する管轄。
  4. TM TCは反対に開始XID コミットやロールバック解像度グローバル。
  5. TCのスケジュールXID コミットまたはロールバック要求の管轄下にあるすべてのブランチトランザクション完了。

3 Fescar モード

Fescarは、 分散トランザクションの実現提供 3 モード、 AT モード、 MTの モードと混在モード:
 

AT 3.1 モード

ビジネスロジックは自動的に懸念取引メカニズム、支店やインタラクティブなプロセスグローバルトランザクションである必要はありません。
AT モード :マルチに焦点 DBの データアクセスの一貫性、実装するためのシンプル、ビジネスへの侵襲性の低いです。
AT 次のようにコードのモード部分:実行状態を考慮する必要はありません、侵入のコードは、小企業です。同様に以下のコードは、添加のみ@GlobalTransactional必要とする方法である に注釈を。
 
AT :コアビジネスモデルの二相が示した新しい改善、そのデザインのアイデアをコミットされた、非侵襲的です
 
第一段階:
 
コアビジネスの嘘 SQL 構文解析され、に変換 undolog ロールバックジャーナルは、リソースの最初の段階でリリースすることが可能で、二相は、リソースが実際のコミットまたはロールバック操作を継続する必要性の第二段階にロックする傾向がコミットし、ロック、ロック範囲が異常のみundolog見つけるために、ロールバック第二段階を発生しても、効率を向上させる、減少される 対応するデータおよびトランス解決 SQL ロールバックの目的を達成するために。プロキシサービスを介してSeataデータソース SQLは 解決さが行わ undolog ビジネス上の非侵襲的な効果に、一方のサービス・データ・ストレージを更新します。
 
第二段階:

解像度はグローバルロールバックの場合は、 RMの 領収書はにより、ロールバック要求のコーディネーターに送ら XID 支店ID 、ロールバックログレコードは、バックリバースロールレコードによって生成された更新SQLを発見され、対応する 分岐バックを完了するために行いますロール。
 

 

3.1 MT モード 

 サービスロジックがに分解する必要があります準備/コミット/ロールバック3 の部分、形成されたMTの追加グローバル・トランザクションのブランチを。

MTの 一方のモード AT サプリメントモード。また、より重要な価値があることによって、 MTが グローバルトランザクションモードで非トランザクションリソース管理の数に組み入れることができます。
 

3.2混合モード

ので AT MTは、 行動のパターンからパターンを分岐し、あなたが完全な互換性、である、グローバル・トランザクションは、同時にATができることができますので、基本的に同じである MTの 枝。ですから、ビジネスシナリオの包括的なカバレッジを達成できること: ATの モードは、ATモードを使用して、サポートすることができます; AT モード一時的にではサポートされないことができ MTの 代わりにモード。また、自然、 MT 非トランザクションリソース管理モデルは、分散トランザクションを管理に一緒にトランザクショナルおよびリレーショナルデータベースリソースをサポートすることができます。
 
 

 

公開された41元の記事 ウォン称賛47 ビュー30000 +

おすすめ

転載: blog.csdn.net/u014526891/article/details/103742138