みなさんこんにちは。私はバスケットボールが大好きなプログラマーのウルフキングです。 よく言及される ACID など、トランザクションはおそらく誰にとっても馴染み深いものでしょう。ただし、分散トランザクションのその後の内容については、まず ACID について説明し、次に分散トランザクションとは何かを紹介し、最後に信頼性の高いメッセージに基づく分散トランザクション ソリューションに焦点を当てます。 取引とは何か厳密に言えば、トランザクションには、ACID と呼ばれる原子性、一貫性、独立性、耐久性が必要です。
一般的な意味では、トランザクションは、一部の更新操作が成功または失敗することを保証するように設計されています。 分散トランザクションとは何か名前が示すように、分散トランザクションは分散システムで実装されます。それらは実際には複数のローカル トランザクションで構成されています。 大規模な操作は、異なるサーバーに分散されたさまざまな小さな操作で構成されます。分散トランザクションでは、これらの小さな操作がすべて成功するか、すべて失敗するかを保証する必要があります。本質的に、分散トランザクションは、異なるデータベース間でのデータの一貫性を確保するように設計されています。 一般的な分散トランザクション ソリューションには、2PC、3PC、TCC、ローカル メッセージ テーブル、信頼性の高いメッセージの結果整合性、ベスト エフォート通知などがあります。 今日は、信頼性の高いメッセージの結果一貫性のソリューションに焦点を当てます。 信頼性の高いメッセージ最終整合性ソリューションとは何ですか?信頼性の高いメッセージ最終整合性ソリューションとは、トランザクション イニシエーターがローカル トランザクションを完了し、メッセージをメッセージ ミドルウェアに送信すると、トランザクション参加者 (メッセージ コンシューマー) が確実にメッセージを受信し、トランザクションを正常に処理することを意味します。このソリューションは、メッセージがトランザクション参加者に送信されている限り、トランザクションは最終的に一貫性を保つことを強調しています。 このアプローチの問題点は何でしょうか?このソリューションは、メッセージ ミドルウェアを通じて実装されます。トランザクション イニシエーター (メッセージ プロデューサー) はメッセージをメッセージ ミドルウェアに送信し、トランザクション参加者はメッセージ ミドルウェアからメッセージを受信します。ネットワーク通信の不確実性により、次の図に示すように、分散トランザクションの問題が発生する可能性があります。 1. ローカルトランザクションとメッセージの原子性の問題 上記の点線ボックスに示すように、次のような状況があります。
まとめると、ローカル トランザクションがメッセージ参加者のトランザクションと矛盾する 4 番目の状況があります。 2. メッセージを受信するトランザクション参加者の信頼性。 メッセージ ミドルウェアとトランザクション参加者は、メッセージを正常に使用できることを確認する必要があります。 3. メッセージの繰り返し消費 トランザクション参加者のインターフェースのべき等性に注意してください。メッセージ参加者はメッセージを正常に消費した可能性がありますが、ネットワークの問題により、メッセージ ミドルウェアはメッセージが消費されていないと判断し、再試行が発生する可能性があります。 解決1. ローカルメッセージテーブル ローカル メッセージ テーブルの鍵となるのは、メッセージ ログをローカルに保存するためのレコード テーブルがあることです。メッセージを送信できることを確認するには、メッセージ ログ レコードを継続的にスキャンするスケジュールされたタスクを開始する必要があります。具体的なプロセスは以下のとおりです。 上記のプロセス:
注意点: トランザクション参加者はインターフェースの冪等性を保証します。 2.RocketMqトランザクションメッセージソリューション Apache RocketMQ 4.3 以降のバージョンでは、トランザクション メッセージが正式にサポートされており、分散トランザクションの実装に便利なサポートが提供されます。 RocketMQ 4.3 以降では、完全なトランザクション メッセージが実装されました。実際、これはローカル メッセージ テーブルのラッパーです。プロデューサー側でのメッセージ送信とローカル トランザクション実行の原子性問題を解決するために、ローカル メッセージ テーブルが MQ 内に移動されます。 実装プロセス:
アドバンテージ:メッセージ データは独立して保存されるため、ビジネス システムとメッセージ システム間の結合が軽減されます。 スループットはローカル メッセージ テーブル ソリューションよりも優れています。 欠点:メッセージを送信するには、2 つのネットワーク要求 (メッセージの半分 + コミット/ロールバック) が必要です。 メッセージ コールバック インターフェイスを実装する必要があります。 実際、各分散トランザクション ソリューションにはそれぞれ長所と短所があります。長所と短所を比較検討し、ビジネスシナリオに最適なものを選択する必要があります。 大丈夫。今日はこれで終わりです。これからも私が学んだことや考えたことをシェアしていきます。一緒に成功への道を歩んでいけたらと思います! この記事はWeChatの公開アカウント「狼王プログラミング」から転載したもので、以下のQRコードからフォローできます。この記事の転載についてはWolf King Programming公式アカウントまでご連絡ください。 |
>>: 中国における自律制御型クラウドコンピューティングの開発動向に関する議論
組織のクラウド コンピューティングの取り組みには通常、オンプレミスのアプリケーションをクラウドに移行...
背景クラウド ネイティブ テクノロジーが広く普及し、実装される中で、私が遭遇した多くのユーザー ニー...
フレンドリーなリンクは、かなりの量のトラフィックをもたらすだけでなく、さらに重要なことに、Web サ...
今年の「ダブルイレブン」は例年よりも早くやって来ます。 11月1日から、みんなが「最終支払い派」にな...
キーワード調査は SEO プロセスの非常に重要な部分です。この部分がどれだけうまく行われるかは、ウェ...
モバイル インターネットの時代において、企業の SMS は、正確な配信、制御可能な量、便利なやり取り...
[「代購」は、時には友人に商品を届けることを意味し、時には「副収入」を稼ぐためのパートタイムを意味し...
テンセントテクノロジーの王克新が1月5日に報じた。万達グループはかつて、電子商取引業界に参入するため...
hosthatch からの最新ニュース: [1] メモリが「言葉では言い表せないほど」倍増 + 20...
Ctrip の「クレジットカード スキャンダル」: システムリスクか、それとも偶発的な操作ミスか原題...
corgitech、5年間運営しているこのVPSビジネスは、長い間私のブログに登場していませんでした...
新華網、北京、9月13日(新華社)―中国サイバースペース管理局から記者が得た情報によると、最近、多数...
3日間の中秋節の連休はあっという間に過ぎ、今日が仕事初日です。多くのウェブマスターは連休中も頑張って...
昨日、私は上司から、インターネット マーケティングについて数人の新しい同僚をトレーニングし、同時にイ...
月給5,000~50,000のこれらのプロジェクトはあなたの将来ですウェブサイトのトラフィックは常に...