魅族秒杀活动优化

7 篇文章 0 订阅
7 篇文章 0 订阅

秒杀活动优化点

  1. 优化缓存设计以减少交互次数

    例如:使用hmget一次性读取需要的数据;将相关数据打包在一起可以通过单个key访问返回

  2. 针对秒杀活动指定业务状态枚举来表示正常逻辑错误

    减少使用异常控制逻辑分支.(找不到子活动,活动没开始,活动结束,用户参与过)这些状态,可以直接用状态枚举返回.

  3. 某些业务逻辑不相关的操作可以异步处理

    • 记录活动监控数据这些,异步处理失败也不会影响正常业务,监控数据误差不大也不影响;
    • 异步在缓存中标记用户已中奖,标记失败仅仅会使用户多访问一次数据库.
    • 扣除库存以外的其他操作,例如发券,扣除库存成功后可以直接提示用户已中奖(抢购成功),稍后在个人中心查看.然后异步处理奖品(商品)发放.
  4. 使用异步排队机制,控制对数据库的并发操作.

    将秒杀参与接口拆分成两个.

    • 提交参与请求,可能直接返回结果,也可能返回事务id表示处理进入队列,结果需要异步查询.
    • 根据事务id查询处理结果.需要隔断时间周期调用.超过约定时间视为处理失败.

Redis存储数据结构

  1. 用户入队标记(参与和结果)
  2. 活动信息(起止时间,库存标记)—保存为hash,以便于可以使用hmget一次读取.

秒杀程序处理流程

用户秒杀操作入队

用户秒杀操作入队

异步扣除库存

异步扣除库存

异步配发奖品

异步派发奖品

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值