一、前言1.秒杀介绍
秒杀是电商系统非常常见的功能模块,是商家进行相关促销推广的常用方式。主要特点是商品库存有限,抢购时间有限。那么在系统设计之初就应该考虑在数量和时间有限的情况下导致的一个高并发以及高并发所带来的库存超卖的问题。秒杀需要解决的问题:1)库存超卖解决方案:1)悲观锁:synchronize、Lock2)乐观锁:数据库乐观锁版本号控制2)高并发情况下系统压力以及用户体验解决方案:redis本教程采用:redis中list类型达到令牌机制完成秒杀。用户抢redis中的令牌,抢到令牌的用户才能进行支付,支付成功之后可以生成订单,如果一定时间之内没有支付那么就由定时任务来归还令牌
2.开发介绍
1)开发工具:IntelliJIDEA.3.52)JDK版本:1.7+3)数据库:mysql5.7、Redis4)技术:Spring、SpringDataRedis、mybatis
2.redis安装(略)3.创建mavne项目,打包方式jar,pom.xml如下
4.数据访问层
利用mybatis逆向工程生成POJO,以及mapper接口和mapper映射文件。该部分自行操作
mybatis核心配置文件SqlMapConfig.xml
数据访问db.properties
redis配置属性文件redis-config.propertiesproperties
5.spring配置文件
applicationContext-dao.xml
applicationContext-redis.xml
applicationContext-service.xml
context: