首页新闻找找看学习计划

.net 电商项目设计问题

0
悬赏园豆:15 [已关闭问题] 关闭于 2017-06-14 09:41

打算使用asp.net core搭建一个电商网站,主要问题是:

客户下单的程序应该怎样设计。本人想过使用线程安全队列来实现,但是感觉会有性能问题,而且如果网站出现“秒杀”的时候使用锁的话很是堪忧。而且队列不能及时反馈信息,当库存不够的时候队列中的订单要怎样处理呢?因为我设计的是前后端分离的,前端全都是使用API返回数据,设计想要尽量的少访问接口,最好能在前端处理好订单集合,API能返回集合的结果,这样的话是最好的。我不知道我的想法有没有问题,欢迎提出建议。

starmile的主页 starmile | 初学一级 | 园豆:167
提问于:2017-06-13 11:55
< >
分享
所有回答(4)
-2

。。。。。

~扎克伯格 | 园豆:1799 (小虾三级) | 2017-06-13 12:02

想说啥

支持(0) 反对(0) starmile | 园豆:167 (初学一级) | 2017-06-13 12:05
0

请求队列咯。队列内的请求依次处理。库存不够直接返回。库存够,商品加锁走下单逻辑

czd890 | 园豆:7577 (大侠五级) | 2017-06-13 12:26

 这样的话请求的接口次数就太多了,每次下单正确要请求两次接口

支持(0) 反对(0) starmile | 园豆:167 (初学一级) | 2017-06-13 12:38

@starmile: 

前端和后端下单接口中间加一层服务器。专门做这个事情。

支持(0) 反对(0) czd890 | 园豆:7577 (大侠五级) | 2017-06-13 12:40
0

re人家说你想些有的没.

为什么下单就要队列..

为什么描述就不能锁.订单不够时当然是请求失败.

前后端分利和前面这些没有关系.

吴瑞祥 | 园豆:28731 (高人七级) | 2017-06-13 12:43

队列是因为对付多并发情况而设计的,其实可以试想一下,商品库存有10个,当50个人同时抢这10个商品的时候,如果不使用队列的话根本无法应付,使用队列可以使后40个抢不到的人立刻知道商品已经被抢完了,提高用户体验,减少服务器压力。

锁可以用,但是这样会使网站请求处于滞留等待状态。

支持(0) 反对(0) starmile | 园豆:167 (初学一级) | 2017-06-13 14:10

@starmile: 1.50个人同时抢一个商品也只要一个update set 状态=已售 where id=1 and 状态=未售.

就搞定了..数据库事务就是锁实现的.

而且只要是资源竞争.最后都会需要锁.

支持(0) 反对(0) 吴瑞祥 | 园豆:28731 (高人七级) | 2017-06-13 14:21
0

先有那么多的用户访问再考虑就来得及

黄昏MMM | 园豆:317 (菜鸟二级) | 2017-06-15 13:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册