- 翻转卡片功能
- 查询瓜分资格功能
- 定时开奖功能
- 高并发、高性能
- 高可用、高稳定性
- 资金安全:通过幂等、对账、监控与报警等机制,保证资金安全,保证用户资产不少发
- 提前做好存储预估
- 资源隔离,不和核心业务部署在一个集群,不影响常规流量
应对高并发:按用户ID路由,对同一用户的所有请求,路由到同一服务器、存储中
需要存的数据:抽卡次数;抽卡记录(已抽到的卡片);开奖记录
抽卡次数通过写 redis 扣减
已抽到的卡片通过消息队列异步写入db,数量大时可以分库分表
- 获奖用户量可提前计算出来,评估数量,提前准备号机器资源
- 获奖用户可通过离线任务计算出后写入DB/缓存/服务器内存
- 在DB/缓存里记录用户的领取状态;以用户ID,或为开奖记录生成自增ID(订单号),作为领取记录的key
- 入账方式:
- 同步入账,需要较多资源
- 异步入账,需要资源较少,但用户不能马上收到钱,可能体验不好
- 异步入账,并将入账状态同步至客户端。当用户进入提现页面时,客户端检查是否有未入账奖励,有则调用服务器同步入账