秒杀系统 | 交易性能优化 | 交易验证优化

交易流程图

秒杀系统 | 交易性能优化 | 交易验证优化
交易流程.png

交易验证优化

  • 用户风控策略优化;
  • 活动校验策略优化;

用户风控策略优化

用户风控策略
  • 前提是获取用户信息;
  • 判断用户 Id 是最基础的风控策略;
  • 判断用户账号是否有异常:之前是否做过异地登录、最近是否做过修改密码等高风险操作;
优化
  • 用户信息一开始都是持久化在 MySQL 中的,可以通过异步的方式将其前置到 Redis 中,

活动校验策略优化

活动校验策略
  • 活动是否存在;
  • 活动是否开始;
  • 活动是否结束;
优化
  • 活动信息也可以前置到 Redis 中;
引入活动发布流程
  • 活动信息的灵活度比较大,活动信息可以随时修改,比如活动取消、活动提前开始,因此需要引入活动发布流程;
  • 运营人员在后台,修改数据库中的活动信息,修改后的信息要能更新到 Redis 中;
  • 活动信息的发布,至少在活动开始前 30 分钟,在这 30 分钟内,要完成 Redis 的预热;
紧急下线能力
  • 运营人员在后台下线活动,然后代码主动清除掉 Redis 中的缓存,完成活动的紧急下线;

把活动信息和用户信息前置到 Redis 后性能提升

  • TPS:1200(450)+;
  • Average:580(2000)+;
  • 应用服务器 CPU 占用率:75%+;
  • 应用服务器 load average:2.1+;
  • 数据库服务器 CPU 占用率:5.8(10)% +,压力全在 Redis(MySQL) 上;