0

イベント予約サイトを実装しています。ショップの観点からは、座席が実際に顧客に予約された場合にのみ、データベースから座席を減らす必要があります。

私の質問は同時実行性についてです。たとえば、空席数が 1 のイベントがあるとします。

2 人のユーザーが同じイベント シートを同時に購入しようとしている場合、そのうちの 1 人の顧客が座席の支払いに成功したときに、2 番目の顧客が座席が既に予約されているため、座席の支払いができないようにしたい。

他のお客様が予約できないように予約することはできますか?

4

1 に答える 1

1

データベースがそのような同時実行サポートを保証しない場合 (私はそれらの専門家ではありません)、座席の予約を担当するアプリケーション用の特別な内部サービスを実装することをお勧めします。

すべての非同期予約リクエストは同期キューに入れられ、BookingService によって消費されます。次に、結果メッセージが発行者に送信されます。

そうすれば、1 つのブッキング エンティティでレースが発生することはなく、したがって二重ブッキングもありません。

于 2013-07-04T10:32:39.800 に答える