分散および分散トランザクションソリューション

 

分散型発電の背景

1.従来のプロジェクトに複数のデータソースがある場合。

2. RPCリモートコールで、イニシエーターAがインターフェイスBを正常に呼び出した後、イニシエーターが突然エラーを報告します(現時点では、パーティーBが送信した可能性があり、エラーを報告した後、AはBに報告できません)。

解決策:最終整合性と2PCまたは3PC(2フェーズコミット、3フェーズコミット)を使用すると、短いデータ遅延が許可されますが、最終データは整合性が取れているはずです。

ソリューション

1. JTA + Atomic、従来のプロジェクトに適しています

2. MQ補償、RabbitMQに基づいて分散トランザクションを解決する

3. RocketMQにはトランザクションメッセージが付属しています。4。LCNに
基づいて分散トランザクションを解決します。原則:独自のデータソースをプロキシして、接続のCommitメソッドとRollbackメソッドを書き換え、誤ったシャットダウンを実現し、トランザクションのグローバルIDを渡し
ます。5。Seataに基づいて分散を解決します。トランザクション、原理はLCNと同じです
が、2つ違いは次のとおりです。ロールバックの方法、LCNロールバックは誤ったシャットダウンであり、デッドロックを引き起こし
がちですが、seataはundoログログを使用してSQLステートメントを生成し、ロールバックを実現します。

上記の5つのスキームは企業内部プロジェクトのサービス実現に適しています。


分散トランザクションの問題を解決するための外部および外部インターフェイスである場合、Alipay +アクティブクエリと同様の非同期コールバックメソッド

 

おすすめ

転載: www.cnblogs.com/long2050/p/12694690.html