秒杀业务优化思路——CRMEB开源商城系统
全国统一咨询热线:

15817498839

当前位置: 网站首页 > 秒杀业务优化思路

秒杀业务优化思路

2023年06月27日 01:50:15  来源:每日必看    

秒杀业务优化思路

各位小伙伴面试的时候,经常会碰到面试官问一些高并发相关的业务场景,这篇文章帮助进入开发行业不久的程序猿了解如何简单实现抢购相关的业务流程,帮助大家梳理下思路。

微信号:15817498839
添加微信好友, 获取更多信息
复制微信号


下面以CRMEB开源商城为例,了解下秒杀活动的创建流程。

首先通过数据验证后,接下来开启事务来保证数据的一致性,然后创建秒杀商品,之后将库存写入Redis缓存中,这块后面优化思路里面会提到。


用户下单时同样先开启事务,进行原子性操作,经过库存检测等验证后,创建成功后预扣除库存、积分抵扣等操作。

后续会进行创建后置事件,例如订单记录、消息推送、订单超时自动取消、计算订单佣金、支付提醒等功能都可以放在后置事件中。

下面从几个方面简单说下优化思路:

1. 数据库作为最终数据存储的地方,数据的准确性是放在第一位的,为了防止商品出现超卖的情况,一般会通过锁来解决,悲观锁/乐观锁,配合事务来一起使用,数据量大的情况下可以考虑读写分离,上云数据库

2. 为了缓解网络IO和服务器压力,还可以将商品、库存等信息放在缓存中搭配使用,这样既能提高用户访问体验,还能减轻数据库访问压力,后续扣库存可以搭配消息队列来进行处理

3. 可以部署多台服务器共同承担压力,有效降低服务器故障几率,保证秒杀业务统的高可用。

4. 可以通过CDN过滤大量的静态文件请求,服务端提前将数据放入缓存进行预热,加大服务器的吞吐量。

5. 作为电商项目,其中秒杀模块一种常见的促销方式,常用于刺激用户消费,往往商品一上架就被抢购一空。这类活动的特点就是用时比较短,瞬时并发量高,类似的还有12306抢票,淘宝双十一等。

6. 服务器的处理资源是有限的,为了避免出现超载导致服务器宕机,访问量过高导致服务器被压垮,这种情况下除了部署多台服务器以外还可以进行限流操作,防止恶意攻击和刷单,这块常用的有令牌桶算法和漏桶算法,相对来说令牌桶算法会尽可能的压榨服务器性能,建议优先使用令牌桶算法进行限流。

7. 为了应对短时间大量的读写高峰,可以考虑加入消息队列来进行削峰、解耦,业务线可以进行拆分,积分、库存、优惠券等操作可以放入不同的消息队列中进行异步消费,降低请求耗时,来提高服务吞吐量。



标签:秒杀 


每日必看相关文章

热门Tags标签
分销商城系统
O2O商城系统
新零售商城系统
APP商城系统
每日必看
    2023年06月27日 01:50:15最新发布秒杀业务优化思路文章,主要内容各位小伙伴面试的时候,经常会碰到面试官问一些高并发相关的业务场景,这篇文章帮助进入开发行业不久的程序猿了解如何简单实现抢购相关的业务流程,帮助大家梳理下思路。微信号:15817498839添加微信好友,获取更多信息复制微信号下面以CRMEB开源商城为例,了解下秒杀活动的创建流程。首先通过数据验证后,接下来开启事务来保证数据的一致性,然后创建秒杀商品,之后将库存写入Redis缓
已复制微信号

微信号: 15817498839
长按二维码保存到手机!

立即添加微信
复制成功
微信号: 15817498839
添加微信好友, 获取更多信息
我知道了