用消息队列 客户消费时就是发送消息,然后等待消息响应,因为你可以接受的等待时间长达10秒,所以完全无压力 至于数据一致性,直接用数据库锁应该也可以达到你的并发请求了,完全没必要全部走串行的方式
根本不需要减库存,只需要按时间给出秒杀有效还是无效就行了。超卖是不会的,少卖在付款有效期限内是避免不了的。方法很简单,人家秒杀时候不需要判断有没有库存,只管把数据保存起来。过一段时间,譬如8秒,如果库存是10个,就取前10条记录,把秒杀结果状态字段更新成秒杀成功,然后前端在10秒后读取这个状态就可以了。
那些费时间、让服务器系统崩溃的做法,都是因为纠结所谓的“数据库事务”而坑爹的。 你只要跟数据库事务分道扬镳,将长事务分离开,就能保证每秒处理10万笔以上业务。完全没有压力,处理秒杀很简单。 实质上把秒杀单独做一个简单的只有几十行代码的通用进程,就可以了。
[quote=引用 2 楼 xuanbg 的回复:] 根本不需要减库存,只需要按时间给出秒杀有效还是无效就行了。超卖是不会的,少卖在付款有效期限内是避免不了的。方法很简单,人家秒杀时候不需要判断有没有库存,只管把数据保存起来。过一段时间,譬如8秒,如果库存是10个,就取前10条记录,把秒杀结果状态字段更新成秒杀成功,然后前端在10秒后读取这个状态就可以了。
13,190
社区成员
5,761
社区内容
加载中
试试用AI创作助手写篇文章吧