秒杀系统 | 交易性能优化 | 交易验证优化
交易流程图
交易流程.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) 上;