IT公司的旅程(二)

秒杀的流程

笔者做过很多业务,oms oa cms crm 金融业务 电商业务 ,,,结果发现最有挑战性的其实也就是 电商的秒杀业务,

任何处理技术,都是为了业务服务,没有最好,只有最适合而已,利用已有或者已知的技术,能够支撑现有的业务,那么就是合适的,就是合格的技术人员

概述

1.整个秒杀,无非就是先在 redis上做库存的减少,然后定时任务刷进真正的库存表中,
前端会在下单的时候,一直轮询下单是否成功的接口,下单之后的操作全部是异步的,各种原子操作也全部就是异步的,
原子操作完成后,会集体修改 Redis中下单时,设置的某一个 key 的值,当有任意的一个原子操作失败,那么将不会下单成功,
同时每个原子操作 必须提供回滚逻辑,
注意你要明确一点:秒杀 高并发的意思就是 : 肯定有一部分人就是要买不到商品,就是有一部分要失败,所以 程序里面超时,异常也是没事的,只要快速的提醒用户就行,

2.通过耗时排查发现高并发时瓶颈点主要集中在:
1.锁表
a.问题:高并发时,事务内修改同一SKU库存时,锁表造成整个事务等待耗时
b.方案:将减库存移至事务外部,先行扣除,如过事务失败再追加回来
2.事务锁
a.问题:订单队列改用分布式后,对用户加了事务锁,对同一用户压测时造成事务锁住产生竞争、等待耗时,无法充分发挥分布式优势
b.方案:压测时用户越多,越接近真实情况,改成对50个用户压测方案性能,避免大量事务锁等待
3.将可移异步处理的事务改成MQ
在这里插入图片描述

整体流程

订单处理
订单处理

具体细则
处理流程
原子操作
原子细则
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值