本来想随便看看, 但是看到被赞最多的回复都不是楼主所要的技术回复, 那些说造假的, 论据都是些来自身边朋友的统计学分析, 或者是看到晕的概率计算. 那些说真实的, 也基本是因为看到有人真的抢到.
我来说说我的想法吧, 先要看看这个问题:
如果你做抢购, 面对几百万红着眼攥着鼠标的抢购者, 你会怎么设计程序?
首先, 前面已经有人计算过了, 如果所有的请求照单全收, 那么小米的服务器需要在几分钟内承受几千万次请求, 小米赚的钱都去买服务器和带宽就好了.
然后我又想起那个hr筛选简历的故事, 随机丢掉一半的简历, 理由是, "我们不要运气不好的人", 同理, 如果有150万人抢购5万台机器, 第一秒估计就有几十万人点击, 那么直接随机放弃至少80%的人, 在考虑到带宽网速问题带来的不平等之后, 这样做甚至是更加合理和公平的. 不然如果真的只能比拼网速, 那电信由此赚宽带升级的费用估计比小米赚的还多.
上面说到的随机放弃, 很有可能就是导致大家挑战的问题的原因, 实现这个有很多方法:
可以是服务器接到请求后按一定概率直接返回售罄的信息, 或者是服务器在生成倒计时页面的时候, 已经指定了这个页面只能返回售罄信息, 或者用户在点击提交的时候, 不直接提交, 而是计算一下, 类似摇个骰子, 摇到6才进入下一页, 否则还是直接显示售罄, 而采取了上面措施之后, 就会被大家发现, 诶, 我的浏览器根本没发出请求怎么就提示售罄了. 其实还是公平, 你的运气不好.
当然除了上面这个是最有可能导致这个现象的原因之外, 还有一些别的可能性.
比如现在众多黄牛, 小米肯定也做了一些判断措施, 比如同一个IP登录多个帐号, 或者同个帐号登录多个地点, 或者特别频繁发出请求, 开启多个页面, 都可能被识别为作弊, 在这里相信小米的手段是宁可误杀三千的, 因为杀了这三千, 还有无数个三千抢着买, 无所谓的. 很有可能正常的用户在这里被误杀, 进了黑名单什么的, 小米直接给你售罄页面也是理所当然.