简单的抽奖接口设计

抽奖使用简单的服务提供高并发的访问,这里提供一下简单设计方案
一 数据库结构
1 user
所有参与的用户,每参加一次,insert一条记录
2 winner
获奖表,只有获奖用户才insert到这张表,并且查询用户是否已经获奖,保证只能获奖一次,减小了查询表的数据量
二 流程
1, 检测手机号是否合法
2, 检测referer是否合法
3, 参与用户的电话写入到参与队列中,同时脚本消化参与队列,写入到user表
4, Cache中获得剩余获奖名额,根据中奖率(剩余/总数)过滤运气不好的用户
5, 查询是否中过奖,没中奖写入到winner数据表
6, 剩余获奖名额-1,重写cache
7, 写入到发奖队列,发奖脚本消化队列
三 总结
1,使用cache或者redis
2,数据库只有insert和查询
3,使用消息队列
并发量有待考验!

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*