我正在实施一个活动预订网站。从商店的角度来看,只有当座位实际被预订给顾客时,座位才必须从数据库中减少。
我的问题是关于并发性。例如,假设有一个可用座位数量为1的事件。
如果有2个用户同时尝试购买相同的活动座位,当其中一个客户已成功支付座位时,我希望第二个客户无法支付 座位,因为座位已经预订。
是否可以进行此类预订,以便其他客户无法预订?
答案 0 :(得分:0)
如果您的数据库不保证您有这样的并发支持(我不是那些专家),我建议为您的应用程序实施一个特殊的内部服务,负责预订座位。
所有异步预订请求都将被置于同步队列中,该队列将由BookingService使用。然后结果消息将被发送给发行者。
这样,只需一个预订实体,就不会有比赛,因此没有双重预订。