zoukankan      html  css  js  c++  java
  • 闲来无聊,想了下秒杀、抢购实现方法

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

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


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

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

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

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

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

    memcache 可以也可以多台。

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

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

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

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

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

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

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

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

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

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

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

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

    转载保留链接

  • 相关阅读:
    windows下在yii中使用mongodb
    yii框架便利类CVarDumper使用
    64位虚拟机创建注意事项
    C#中的委托和事件
    Attribute
    NuGet安装及使用教程
    WPF+WEB+WinForm->>表现层共用类
    C#报修系统Ⅱ
    C#带小括号的运算
    工厂模式提供数据源
  • 原文地址:https://www.cnblogs.com/xwblog/p/2494818.html
Copyright © 2011-2022 走看看