Concurrency 活动预订中的并发性

Concurrency 活动预订中的并发性,concurrency,optimistic-concurrency,Concurrency,Optimistic Concurrency,我正在实施一个活动预订网站。从商店的角度来看,只有当座位实际预定给客户时,才能从数据库中减少座位 我的问题是关于并发性的。例如,假设有一个可用座位数量为1的事件 如果两个用户试图同时购买相同的活动座位,当其中一个客户成功支付座位费用时,我希望第二个客户无法支付座位费用 因为座位已经预定了 是否可以进行这样的预订,以便其他客户无法预订?如果您的数据库不能保证您提供这种并发支持(我不是这方面的专家),我建议为您的应用程序实施一项特殊的内部服务,负责预订座位 所有异步预订请求都将放入一个同步队列中,该

我正在实施一个活动预订网站。从商店的角度来看,只有当座位实际预定给客户时,才能从数据库中减少座位

我的问题是关于并发性的。例如,假设有一个可用座位数量为1的事件

如果两个用户试图同时购买相同的活动座位,当其中一个客户成功支付座位费用时,我希望第二个客户无法支付座位费用 因为座位已经预定了


是否可以进行这样的预订,以便其他客户无法预订?

如果您的数据库不能保证您提供这种并发支持(我不是这方面的专家),我建议为您的应用程序实施一项特殊的内部服务,负责预订座位

所有异步预订请求都将放入一个同步队列中,该队列将由BookingService使用。然后将结果消息发送给发卡机构


这样,通过单一预订实体,将不会有比赛,因此不会有双重预订。

是的,您当然可以。在数据库查询中,检查seatsleet
是否插入预订值(…,…),其中seatsleet>0
您只需检查插入的行数,然后向用户显示正确的消息。请参阅