闲来无聊,想了下秒杀、抢购实现方法

对于秒杀、抢购这种促销活动在电商还是比较常见。

如果东西不错、价格低、推广不错,势必会引来不少流量。


今天闲来想了下实现方法。

本人写PHP的,大致思路代码用php。

 

首先需要做的是用户必须注册登录,流量服务器必须能顶的住。

有钱的公司做个F5负载,也可以用nginx做个负载均衡也不错的。

登录无非把 SESSION 存储到 memcache 实现多台服务器共享。

memcache 可以也可以多台。

抢购页面可以越简单越好,能验证登录基本不要加载过多功能,减少压力。

对于抢购页面的图片,CSS,JS走CND,减少图片服务器压力,提高用户体验。

避免工具恶意抢购,可以开启图片验证码,相信有验证码在,不怕不瞎搞。

 

具体实现:时间一到,用户开抢,直接把数据入队列,比如RabbitMQ ,HTTPSQS。

比如说有三件商品,直接取出队列3个就OK。

后台开启一个守护进程,去取出用户,插到memcache,mysql

插入memcahce给前台展示使用,插入mysql做永久存储。

前台展示只需要读memcache的中的抢中用户就行了。

后台守护进程还有一个功能就是去检查memcache 如果没有命中则重新设置新值。

 

当然考虑memcache 命中问题已经持久化存储,可以考虑用现在非常强大的mongoDB ,原理思路完全一样。

 

这个思路把所有的压力交给缓存,对mysql 不会造成任何压力。

 

鄙人的想法,有更好的方法 可以大家一起讨论。

 

 

posted @ 2012-05-10 18:27  小伍BLOG  阅读(1729)  评论(1编辑  收藏  举报