2016-08-04 55 views
0

我在接受采访时提出以下方案:如何防止预订系统中同时用户更新的竞争状况?

  1. 用户1看的电影空座。
  2. 用户2还看电影的空座位。
  3. 两者都选择'同一座位'并点击提交。

1,什么机制会阻止同一资源被分配给两者?

我回答了,我们会检查应用服务器上每个请求的时间戳。他说,如果负载平衡器会将请求重定向到不同的应用程序服务器,该怎么办?

  1. 还问我是否可以在DB-layer上做任何事情来防止这种情况发生?我在交易和ACID方面表现不佳,但是它与此有关吗?请解释 ?

回答

1

只需执行完整性规则,即同一座位不能由两个不同的人同时占用。这应该只是宣布关键{影院#,座位#}(很难说没有给定的模式)。试图获得座位的第二位用户将收到一条错误消息,指出“座位不可用”。可以明确和礼貌地解释这可能是由于其他人试图做到这一点。