`
loveqinghe
  • 浏览: 15072 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

我看小米抢购——纯技术分析贴

 
阅读更多
这几天分析小米抢购机制的帖子网文很多。我也来浅析一下,小米具体的没看,但原理相通。
鄙人曾在某知名网站做技术。做了一个很复杂的抢票系统,至今在用。
需求是这样的,网站会跟商业公司合作做一些推广,送出一些演出门票,数码产品什么的让网友来抢。
第一次上线抢票,只放了一张门票,送个数码相机,再送飞机票。数据库里只放一条记录,第一个网友进来了就立即删除。其他网友全部提示“没抢到”,但也让网友留信息。第一次成功了。 客户很满意,尤其看到了很多热心网友留的信息。
第二次放20张门票,还沿用第一次的系统设计,放20条记录,在网友抢走了几张票后,后台数据混乱了,票超发了(放出去了不到30张),客户也认了。(这种故障12年的淘宝双十一也出现过) 。
后来分析,不能在一开始就让所有请求都操作数据库,直接连库MySQL扛不住,主从就超发,加缓存超发估计会更严重。
解决办法:
1.让用户分流,让部分用户直接返回“没抢到”,不请求数据库 。
2.如果还不行就,错开峰值 ,高峰期全部用户都不请求数据库,全部返回“没抢到”。
分流我们的办法比小米高明,网友猜测不到,每一个请求分配一个随机数,跟编辑设置的“阀值”比较,比阀值大就请求数据库,再判断奖品还有没有。小米傻到直接在页面上上空链接。大傻。
错开峰值,就是抢票刚开始时,其实库里奖品数量是0,全部返回“没抢到”,过了高峰期再放出来抢。(小米这次20分钟抢完,估计也是这样的)
分布部署,我们直接用于前端响应的server大概有20台,直接挂在F5上的,修改配置,让其中的n台程序就不访问数据库,直接返回“没抢到”。

现状:编辑可以自由的控制奖池中奖品的数量,设置“阀值”大小改变抢中的概率,分不同时段放票,来维持活动的热度。
====================================================================================
我的另两篇文章,大型网站设计及大型网站动态应用。
http://loveqinghe.iteye.com/blog/1969733
http://loveqinghe.iteye.com/blog/1969777
20
9
分享到:
评论
4 楼 caizi12 2013-10-23  
如果并发数小于数据库能支持的并发数量,
一个sql就避免了超发,update set count=count-1 where count>0,根据update语句返回的影响行数便知有没有抢中。
3 楼 caizi12 2013-10-23  
你这应该还是并发小吧,抢票成功数小远小于数据支持的最大并发数吧。
2 楼 LitterChop 2013-10-23  
挺好奇第二次放票故障是怎么造成的,并发访问到数据库记录么?
1 楼 Tyrion 2013-10-23  
有意思。

相关推荐

    产品分析:小米有品——品质电商的发展之路.docx

    产品分析:小米有品——品质电商的发展之路.docx

    圣道小米抢购神器5.0中文绿色免费版

    圣道小米抢购软件是一款免费高效的小米抢购秒杀工具。软件采用P2P加速技术,抢购更迅速,更稳定,更高速,更高效。软件绿色便捷,永久免费,是小米抢购神器。 圣道小米抢购软件 功能特点 1.高速抢购 P2P加速技术,...

    小米抢购源代码

    小米抢购源代码, using System; using System.Threading.Tasks; using System.Windows.Forms; using System.Timers; using Newtonsoft.Json; using System.Text.RegularExpressions; using System.Configuration; ...

    小米商城——Node后端.zip

    【小米商城——Node后端.zip】是一个包含有用于构建小米商城后端服务的源代码压缩包。这个项目可能使用了Node.js,一个基于Chrome V8引擎的JavaScript运行环境,为服务器端编程提供了一个强大而高效的平台。Node.js...

    寒战小米抢购软件v0.0819中文绿色免费版

    寒战小米抢购软件是一款目前为止最新发布的小米手机预约抢购软件,已有人成功抢购,有兴趣的朋友可以试试这款小米抢购软件。 使用方法 如果点击抢购,出现说明获取验证码渠道正常,小米官方没有更改验证码机制,...

    享受代码的快乐--小米抢购前端代码分析

    通过分析博主黄之锐在iteye博客上分享的文章,我们可以了解到小米抢购页面的前端实现细节以及相关技术的应用。 首先,我们来看看www.xiaomi.com.html,这很可能是小米官网抢购页面的源代码副本。在这个文件中,我们...

    小米抢购页面脚本研究

    标题“小米抢购页面脚本研究”涉及到的是对小米官网抢购页面的分析,特别是其中的脚本技术。这项研究可能关注的是如何通过编程手段理解并自动化抢购过程,以提高用户成功购买到热门产品的概率。在IT领域,这种行为...

    小米抢购技巧

    【小米抢购技巧详解】 在科技日新月异的今天,小米手机因其高性价比而备受消费者喜爱,然而,每次新品发布时的抢购大战总是让人望而却步。以下是一些有效的抢购策略,帮助你提高成功购买小米手机的可能性。 首先,...

    小米抢购插件源码(Chrome)

    【小米抢购插件源码(Chrome)】是一款专为抢购小米产品设计的Chrome浏览器扩展。这款插件的核心功能是帮助用户在小米官网的抢购活动中提高成功率,通过自动化的方式快速填写信息并提交购买请求。它的工作原理是利用...

    小米产品抢购软件

    【小米产品抢购软件】是一种专门针对小米公司热门产品的在线抢购辅助工具,它旨在帮助用户提高购买小米手机、智能设备等热门商品的成功率。在众多消费者对小米新品的追捧中,由于库存有限,抢购变得极具竞争性,而这...

    小米抢购软件 源码 学习使用

    【小米抢购软件源码分析】 本资源包含的是小米抢购软件的源代码,对于学习自动化脚本编写、网络请求处理以及多线程技术的开发者来说,这是一个极具价值的学习材料。下面将对其中可能涉及的知识点进行详细阐述。 1....

    西域小米抢购助手小米抢购软件v1.43破解绿色版

    如果用来抢购小米官网活动请保持默认即可,建议同一个账号开多个页面,这样能提高抢购成功率。 使用方法:(压缩包中含详细图文教程) 关键字模式介绍: 关键字说白了其实就是网页中可点击按钮的文字(当然这里是指...

    小虫抢小米(小米抢购神器)v4.0绿色特别版

    你可以在工作繁忙的时候进行小米手机抢购的伴侣,软件集成小米手机抢购攻略。小虫抢小米辅助工具是最专注小米抢购开发的一款抢购红米软件,可以帮助你,在速度最快的情况下抢到小米手机3与红米手机。 小虫抢小米辅助...

    案例分析让“猪”在风口上飞——小米手机互联网思维商业模式分析.zip

    《案例分析:让“猪”在风口上飞——小米手机互联网思维商业模式分析》 这篇案例分析深入探讨了小米手机如何运用互联网思维构建独特的商业模式,使其在短短几年内迅速崛起,成为全球知名的智能手机品牌。小米的成功...

    小米抢购器 新版-源码

    【标题】"小米抢购器 新版-源码"指的是一个专为参与小米产品抢购而设计的自动化工具的新版本的源代码。源码是软件开发的基础,它包含了程序的所有指令,可以让程序员深入理解软件的工作原理,并进行修改、优化或二次...

    纪念我曾经发烧的青春——小米手机历届发布回顾ppt模板.zip

    这份名为"纪念我曾经发烧的青春——小米手机历届发布回顾ppt模板.zip"的压缩包,显然是一份用于回顾小米手机发展历程的PPT模板,旨在帮助用户了解小米的成长历程,同时唤起对过去岁月的回忆。 小米手机的历届发布会...

    安卓Android源码——小米系列之小米录音机.zip

    在安卓系统开发中,源码分析是提升技术深度和理解操作系统工作原理的重要途径。本文将以“安卓Android源码——小米系列之小米录音机”为主题,深入探讨小米录音机的源码实现,帮助读者了解安卓录音功能的底层机制和...

    全自动抢购小米教程下载加软件下载视频

    【标题】:“全自动抢购小米教程下载加软件下载视频”所涉及的知识点主要集中在自动抢购技术、软件开发以及互联网营销策略。 在自动抢购技术方面,小米手机因其性价比高,常常在开售时遭到消费者的疯抢,因此,出现...

    前端项目——小米官网首页

    在本项目中,“前端项目——小米官网首页”旨在模拟实现小米官网的主页,采用的是基础的HTML、CSS技术,特别强调了对div和css的运用。这个项目对于初学者来说是一个很好的实践机会,因为它不涉及复杂的JavaScript...

    互联网时代优秀企业文化构建——以小米公司为例.pdf

    小米提倡员工不断学习、提升自我,以适应不断变化的市场环境和技术发展。这种对学习的重视不仅能够提高员工的技能水平和创新能力,还能够激发员工的潜能,促进企业内部的知识更新和知识共享。 小米公司的企业文化...

Global site tag (gtag.js) - Google Analytics