商品秒杀技术实现

查阅了一些文章,讲的透彻的不多,也可能是我理解不到位

一种思路, http://guzz.iteye.com/blog/811500,提到的采用二次事务模式,使用AtomicInteger原子计数,挡掉大部分的请求,只接受计数值个用户请求,并提交数据库事务;如果采用多台应用服务器,计数值可以均分,比如总数50,5台服务器,那么每台可以为10。

另一种,说采用队列,放一定数量的用户进去,秒杀结束,从中取先进入队列的部分用户,或者是固定长度的队列,大体如此。

还有提到用缓存的,具体怎么用没有讲清楚的,如下文
比如有10件商品要秒杀,可以放到缓存中,读写时不要加锁。 当并发量大的时候,可能有25个人秒杀成功,这样后面的就可以直接抛秒杀结束的静态页面。进去的25个人中有15个人是不可能获得商品的。所以可以根据进入的先后顺序只能前10个人购买成功。后面15个人就抛商品已秒杀完。

当然进去25个人只是个比方,有可能更多,有可能少一点。最多能进去几个可用线程压一下。

秒杀结束页面一定要用静态页面,别用数据库。

一篇有点想法的文, http://www.cnblogs.com/rollenholt/archive/2013/10/28/3393398.html
http://wenku.baidu.com/link?url=fFeQ8PFXiQF2DCJYFyNdURBDdYiCId-vRjkvU9niwDsuA0pEU67ewpDq3nJfpOWrcVOOfMGUHVTN4X2u88luRCtYH50wLj0UvG7io5WeMuS

Tagged: , , ,

Comments are closed.