2016-08-04 53 views
0

我在接受採訪時提出以下方案:如何防止預訂系統中同時用戶更新的競爭狀況?

  1. 用戶1看的電影空座。
  2. 用戶2還看電影的空座位。
  3. 兩者都選擇'同一座位'並點擊提交。

1,什麼機制會阻止同一資源被分配給兩者?

我回答了,我們會檢查應用服務器上每個請求的時間戳。他說,如果負載平衡器會將請求重定向到不同的應用程序服務器,該怎麼辦?

  1. 還問我是否可以在DB-layer上做任何事情來防止這種情況發生?我在交易和ACID方面表現不佳,但是它與此有關嗎?請解釋 ?

回答

1

只需執行完整性規則,即同一座位不能由兩個不同的人同時佔用。這應該只是宣佈關鍵{影院#,座位#}(很難說沒有給定的模式)。試圖獲得座位的第二位用戶將收到一條錯誤消息,指出「座位不可用」。可以明確和禮貌地解釋這可能是由於其他人試圖做到這一點。