冪等冪等分散システムの冪等とは何ですか

冪等

分散システムの冪等とは何ですか

 

最近、多くの人々が冪等について話している、まあ、まあ私はこのトピックについて話をする必要があり、ちょうど梁紫を見て、最初は少し混乱し、悪い言語だったこの時間は、言葉は右、あまりにもプロまあです

 

今日、当社のシステムは、主に別のサービスを呼び出すために傾向があり、サービスはRPC通信を使用して通話サービス以外の何物でもない分散型SOAに分割、またはマイクロサービス、システムは、複数のサブシステムやサービス、およびサービス・サブシステムが含まれていますそれが再処理されたサーバがハングアップの結果を返すことが可能であるので、この時間は、クライアントが長時間応答を見つけていない、通信であるためか、安らかな、それは、ボタンを何度も何度もクリックしますリクエストがあり、データの後、処理結果は、それを統一する必要があるかどうか?それは確かです!特定のシーンを支払うこと。

 

冪等:ユーザーまたは開始した同じ操作の複数の要求のための要求の結果である同じ、複数のクリックは、副作用を生成しませんです。簡単な例を与えるために、それは異常なネットワークは、お金が控除されているこの時間は、ユーザーがもう一度ボタンをクリックすると、今回は二度目になる際に支払い、デビット成功したが、戻り結果について、使用して商品を購入することをユーザーに支払いますチャージバックは、背中、ユーザーのクエリにバランスがお金を控除よりも、水がレコード2となっているより多くのを発見し、成功した結果を返しました。

 

以前の単一のアプリケーション・システムでは、我々だけのトランザクションにデータ操作を必要とする、エラーがようにすぐにロールバックされるが、ネットワークの中断または異常があるかもしれないときに、クライアントへの応答、および発生する可能性があります。

 

4回のCRUD操作では、特に注意が追加または変更することで、

クエリ結果のために変更はありませんで、

一度だけ削除し、何度もユーザーが同じ結果をクリックします

ほとんどのシナリオで同じ結果を変更

シーンを繰り返し提出の増加があります

 

だから、どのように我々はそう何インターフェースの電源を設計することができますか?

この方法は、直接、追加のデータベース操作を支払わされていない、単一の支払い要求、ユニークticketIdを作成するための非同期要求を開始するには、この時間は、チケットがあり、このチケットは一度だけ使用し、廃棄することができ、次の手順を実行します。

  1. 非同期リクエストのチケット

  2. 支払いを呼び出して、入ってくるのチケット

  3. 操作が行われたことを示しているがある場合、チケットIDの問い合わせ、この操作の有無によると、結果は直接戻る、そうでない場合は、料金を支払う、結果を保存します

  4. クライアントに結果を返します。

通信が失敗した場合、ステップ4は、ユーザが再度要求を開始し、最終的な結果は同じです

 

各サービスコールお互いを第二の方法、分散環境

ここでの例は、我々のシステムはだろう、と私たちは最初に料金を支払う、その後、順番、サービスおよび支払サービスのために関連する場所を更新する必要があります。

ユーザーは、対応する注文ステータスを更新した後、水を保存し、成功控除した後、賃金を呼び出します。

それは多くの問題多忙になるので、この場所でticketIdチケットを使用すると、必要はありません

(支払い状況:未払い、支払いました)

ステップ:

1、ご注文の支払い状況を確認します

2.あなたが既に支払った場合は、直接のリターン結果

3.あなたは、給与控除を支払うと水を保存しない場合

4、支払いの結果を返します。

通信が失敗した場合、ステップ4は、ユーザが再度要求を開始し、最終的な結果は同じです

友人のためなど、電源を払うんでした、また、複数の電荷を避けるために、トランザクションの整合性クライアントとサーバを確実に逆転呼び出すことができます。

 

最後に、私たちのためのプロセスを見て、非常に複雑ではないが、しかし、最終的に決済環境は冪等を達成することが確実です

最近、多くの人々が冪等について話している、まあ、まあ私はこのトピックについて話をする必要があり、ちょうど梁紫を見て、最初は少し混乱し、悪い言語だったこの時間は、言葉は右、あまりにもプロまあです

 

今日、当社のシステムは、主に別のサービスを呼び出すために傾向があり、サービスはRPC通信を使用して通話サービス以外の何物でもない分散型SOAに分割、またはマイクロサービス、システムは、複数のサブシステムやサービス、およびサービス・サブシステムが含まれていますそれが再処理されたサーバがハングアップの結果を返すことが可能であるので、この時間は、クライアントが長時間応答を見つけていない、通信であるためか、安らかな、それは、ボタンを何度も何度もクリックしますリクエストがあり、データの後、処理結果は、それを統一する必要があるかどうか?それは確かです!特定のシーンを支払うこと。

 

冪等:ユーザーまたは開始した同じ操作の複数の要求のための要求の結果である同じ、複数のクリックは、副作用を生成しませんです。簡単な例を与えるために、それは異常なネットワークは、お金が控除されているこの時間は、ユーザーがもう一度ボタンをクリックすると、今回は二度目になる際に支払い、デビット成功したが、戻り結果について、使用して商品を購入することをユーザーに支払いますチャージバックは、背中、ユーザーのクエリにバランスがお金を控除よりも、水がレコード2となっているより多くのを発見し、成功した結果を返しました。

 

以前の単一のアプリケーション・システムでは、我々だけのトランザクションにデータ操作を必要とする、エラーがようにすぐにロールバックされるが、ネットワークの中断または異常があるかもしれないときに、クライアントへの応答、および発生する可能性があります。

 

4回のCRUD操作では、特に注意が追加または変更することで、

クエリ結果のために変更はありませんで、

一度だけ削除し、何度もユーザーが同じ結果をクリックします

ほとんどのシナリオで同じ結果を変更

シーンを繰り返し提出の増加があります

 

だから、どのように我々はそう何インターフェースの電源を設計することができますか?

この方法は、直接、追加のデータベース操作を支払わされていない、単一の支払い要求、ユニークticketIdを作成するための非同期要求を開始するには、この時間は、チケットがあり、このチケットは一度だけ使用し、廃棄することができ、次の手順を実行します。

  1. 非同期リクエストのチケット

  2. 支払いを呼び出して、入ってくるのチケット

  3. 操作が行われたことを示しているがある場合、チケットIDの問い合わせ、この操作の有無によると、結果は直接戻る、そうでない場合は、料金を支払う、結果を保存します

  4. クライアントに結果を返します。

通信が失敗した場合、ステップ4は、ユーザが再度要求を開始し、最終的な結果は同じです

 

各サービスコールお互いを第二の方法、分散環境

ここでの例は、我々のシステムはだろう、と私たちは最初に料金を支払う、その後、順番、サービスおよび支払サービスのために関連する場所を更新する必要があります。

ユーザーは、対応する注文ステータスを更新した後、水を保存し、成功控除した後、賃金を呼び出します。

それは多くの問題多忙になるので、この場所でticketIdチケットを使用すると、必要はありません

(支払い状況:未払い、支払いました)

ステップ:

1、ご注文の支払い状況を確認します

2.あなたが既に支払った場合は、直接のリターン結果

3.あなたは、給与控除を支払うと水を保存しない場合

4、支払いの結果を返します。

通信が失敗した場合、ステップ4は、ユーザが再度要求を開始し、最終的な結果は同じです

友人のためなど、電源を払うんでした、また、複数の電荷を避けるために、トランザクションの整合性クライアントとサーバを確実に逆転呼び出すことができます。

 

最後に、私たちのためのプロセスを見て、非常に複雑ではないが、しかし、最終的に決済環境は冪等を達成することが確実です

おすすめ

転載: www.cnblogs.com/Leo_wl/p/10992773.html