Dojo
最新
最佳
搜索
订阅
解道Jdon
领域驱动设计
架构设计
热点话题
GitHub开源免费源代码
RUST语言
规则引擎
DevOps文章排行榜
数据科学
产品经理
数据分析
认知偏差与谬论
幽默模因
更多话题
一元夺宝系统设计
16-08-22
mistbow
各位道友好;
现在要做一个一元夺宝功能,比如一个iPhone,需要买5000分。我打算埋5000个坑(5000条纪录)。等有一个用户买了,我就把他写到其中一条记录之中。但是这样有一个问题,如果俩用户同时拿到一条记录,那么第二个人就有可能失败了。
请问各位,应该怎么设计这个系统呢?
banq
2016-08-23 07:50
这是一个高并发的设计问题。
高并发不一定要用数据库记录,而且如果访问量很高,数据库也是不行的,可以使用Akka等Actor模型。或者使用队列模型,无锁并发模型Disruptor等。或Go语言的并发模型。
两个人能够同时从数据库读取一条记录,但是写入修改时,数据库的ACID会防止并发修改,因此,只有同时一个人能写入一条记录;如果你想设计成每个人只能读取一条记录,而不会发生两个人同时拿到同一记录,可以使用队列排队方式。
猜你喜欢
本站原创
《复杂软件设计之道:领域驱动设计全面解析与实战》
其他人在看