来源: linkedkeeper.com
作者:肖依云,热爱技术,熟悉Struts2、Spring、Spring MVC等常用开源框架,对开发分布式、高并发系统有一定的学习和研究。正在学习大数据和AI相关技术,梦想是把代码写成诗。
责编:钱曙光(qianshg@youkuaiyun.com)
该项目的主要功能特点是类似于一个秒杀系统,存在短时间高并发问题,在拿到项目需求后,我们对该项目进行了两版程序设计,初始版本中,在高并发的情况下,无法保持数据的正确性,存在可能一个用户被抽中多次的问题,以及对数据库频繁的写操作会降低程序运行效率。
在第二版中,我们着重对两点问题进行了优化,摒弃了直接查询、更新数据库的思路,转用了Redis进行缓存处理,很好的解决了第一版中的两大痛点。
下面将对该项目程序设计的整体思路进行阐述。
项目需求
该项目是一个和微信小程序结合的抽奖活动,主要的业务需求如下:
1. 普通用户部分:
- 手机扫二维码或者点击链接进入小程序
- 点击“点我送礼”按钮,随机匹配送礼用户
- 获得匹配结果,将礼物送给匹配用户
2. 管理员部分:
- 上传用户数据
- 进行数据初始化操作
- 查看抽奖结果