0

たとえばamazon.com、彼らはマイクロサービスアーキテクチャに頼っています。おそらく注文と支払いは別々のマイクロサービスですが、amazon.comで注文をチェックすると、最終的に注文IDと詳細を見ることができます。多分2PCですか?マイクロサービスアーキテクチャで即時の一貫性をいかに達成するには?

私は質問を一般化しています。最終的な一貫性がビジネストランザクション(エンドユーザはトランザクションの結果終了を確認する必要があります)に適していますが、別個のマイクロサービスは意味があります(注文と支払いのように) どうすれば即時の一貫性を処理できますか?

答えて

2

クロスサービストランザクション(アトミック性)には、2PC、Percolatorのトランザクション、およびSagasを提供できるいくつかの手法があります。

Percolator's transactionsは、直列化可能な分離レベルを持っています。業界でも知られています。AmazonのDynamoDB transaction library,CockroachDB database、GoogleのPecolatorシステムそのものを参照してください。パーコレータの取引のstep-by-step visualizationは、彼らがどのように動作するかを理解するのに役立ちます。

サガパターンは80年代後半のSagas紙に記載されていましたが、マイクロサービスの登場とより関連しました。インスピレーションのためのApplying the Saga Patternトークをご覧ください。

しかし最終的な一貫性について言及して以来、すべての手法で個別のサービスが線形化可能(強固な一貫性)と比較および設定をサポートする必要があることに気づくことが重要です。

関連する問題