急いで購入する場合、注文の処理には非同期キューが使用されますが、注文結果をリアルタイムでユーザーに通知するにはどうすればよいですか?
急いで購入する場合、注文の処理には非同期キューが使用されますが、注文結果をリアルタイムでユーザーに通知するにはどうすればよいですか?
クライアントはjsを使用してインターフェイスをポーリングし、処理ステータスを取得します
急ぎ購入で最も重要なことは、在庫データの強力な一貫性を確保することです。MySql などのリレーショナル データベースを使用している場合、この点での負荷に耐えられない可能性があります。一般的にはredisなどのキャッシュミドルウェアと組み合わせて処理されます。急ぎ購入が開始される前に、商品と在庫データが Redis に同期され、すべての急ぎ購入操作がバックグラウンドで開始され、在庫データがデータベースに定期的にフラッシュされます。
その後、注文の支払いを開始します。トラフィックが多いため、サードパーティの支払いシステム自体も呼び出しアプリケーションのトラフィックを制限します。そのため、ここで述べたことは次に説明する必要があることです。
ここではメッセージ キューを使用する必要があります (つまり、非同期キューと呼ばれるもの)。高トラフィックの影響からシステムを保護し、システム クラッシュを引き起こすために、メッセージ キューには次のような対策があります。バッファ保護のために、システムはユーザーの手順のステータスをリアルタイムで更新するウィンドウ モデルを設計する必要があります。
たとえば、注文をして支払いの準備をした後、ユーザーはサービスホールのサービス窓口にジャンプしますが、この時点で窓口がいっぱいの場合、つまりオンラインの消費者の数に達した場合、ユーザーは次のことを行う必要があります。待機ウィンドウが表示され、アイドル状態のスレッドが解放されると、ユーザーは支払いと注文を開始できます。
上記の説明は、在庫を削減するために写真を撮るモデルに基づいています。ただし、支払いを通じて在庫を削減するシステムを設計する場合は、若干の違いがあります。ただし、そのようなウィンドウは、ユーザーにステータスを通知するためにも必要です。ユーザーの支払いは期限内に完了しませんでしたが、ステータスがユーザーに返され、ユーザーはページを通じてウィンドウのステータスをリアルタイムで確認できます。