为什么我总是秒杀不到特价商品

  引言: 

     双十一已经过去,你剁手了吗?最重要的是,幸运女神有没有眷顾到你,让你秒杀到心仪的东西。为什么我们总是秒杀不成功,今天就来告诉你秒杀的秘密。不知你看了我们的文章后,还打算剁手即将到来的双十二吗? 

    

  正文: 

  女:哥,今年双11有个特价ipad你能不能帮我一起秒杀下? 

  男:“好吧” 

  女:“啊。。。。。开始啦,快,抢抢。。。。” 

  女:“哎呀,又没抢上!……你抢上了吗?哥” 

  男:“没有” 

  女:“嗨,怎么咱老抢不上,是不咱们网络不行啊,还是手机太卡了。哥,要不你给我换个新手机吧。” 

  男:“再见……” 

    

  我相信每年的双十一,很多家庭都会上演这么一出秒杀大战。不知道大家战果如何,有没有秒杀成功过。反正从09年第一届双十一购物节开始我就尝试秒杀,迄今为止都没有成功过一回。起初我一直坚信,只要我坚持去秒杀,总有一次幸运女神会眷顾到我的吧。毕竟作为掌控运气的大神,她总得雨露均沾吧。当我知道世界上竟然还存在像杨超越、信小呆这样的人的时候,我的信心碎了一地。难道运气这东西也讲究马太效应?哦,对了这里可能有的朋友对杨超越、信小呆这两个人还不熟悉。我给大家介绍下,杨超越是一名刚出道每次许的愿都能变成现实的艺人;信小呆呢就是号称“中国锦鲤”第一人,她可是抽中了支付宝价值一亿的奖品呢。难到这个世界上真的有天选之人吗?他们真的是拥有与生俱来的锦鲤运,而我们都只能是芸芸众生中那个甲乙丙丁的他他他吗?即便这样,我们难道就连一次小小的秒杀都无法成功吗?运气太过虚无缥缈,我相信科学会给我们答案。 

  这些年,我一直在中国科学院国家授时中心这个神秘的研究所里从事和时间相关的研究工作。终于也让我知道“秒杀”失败的问题究竟出在了什么地方,那就是:时间不同步! 

  什么是时间同步?其时很好理解,就是我们常说的对表。还记得在我小的时候,每天放学回家要做的一件事情就是要把家里钟表的时间和七点整的新闻联播的时间调整一致,这就可以说我们的时间和电视的时间同步了,家里的表就准了。而两者间的差值越小,时间同步精度也就越高,我们家的表也就越准。 

  随着网络技术的不断发展,我们现在再也不用等在电视前对表了。生活中各种便携电子设备开始普遍采用更加先进的授时方式。网络授时NTP(Network Time Protocol)就是其中的一种。它是通过互联网服务来使计算机、手机等网络设备时间同步化的一种协议,它可以使我们个人计算机、手机等设备与服务器或相关的时钟源(如GPS系统时间等)做同步化。这种技术可以为我们提供高精准的时间校正。在广域网中,可以让设备间的同步精度达到几十毫秒量级,什么概念?两台设备时间相差比我们眨一下眼的时间还要精确10倍。而在局域网内更是可以让时间的同步精度优于1毫秒。 

  可能有的朋友会问这和我秒杀失败有什么关系吗?当然有,而且是非常重要的关系。这样我们先来看看NTP到底是什么原理。NTP算法首先要根据服务器和客户端的往返报文来确定两个地方时钟的差值以及报文在网络中传输的延迟,然后通过时间补偿让客户端和服务器的时间保持同步。 

  来,给大家举个简单的例子,比如我要秒杀11号凌晨0点的(00:00)的商品。所以在10号晚上的1159分我们就要开始准备。但是,这只是你以为的23:59。实际上,很可能我们手机上的时间和淘宝服务器上的时间并不是同步的。这就相当于你在短跑比赛中起跑的时候没有按裁判(也就是淘宝服务器)的发令枪的信号时间做为标准,而还是以你本地的时间做为起跑信号,那么你最终只可能抢跑或比别人起跑慢。当秒杀开始后,我们发送购买的指令信息会以光速冲向淘宝的服务器,然而我们所在的城市离淘宝服务器的距离还隔了十万八千里,传递路径上的长度和复杂度会就造成信息延迟,同时也会碰上网络拥堵。当我们的信息撞线后,淘宝服务器和别的信息到达的时间进行比对,如果我们的时间排在后面那么注定这次的秒杀不会成功。服务器在发现没有秒杀名额后,会将结果反馈给我们。当然这也并不是只是为了告诉我们秒杀失败这条坏消息。假如淘宝服务器提供对时服务,当信息反馈回来的时候便可以触发一次时间校准,这样我们的手机和淘宝服务器的时差就会减少。当我们完成几次通信后,我们手机的时间与淘宝服务器的时间也会就越来越同步。而在现实生活中我们对时间精度的感受只停留在秒量级,所以网络校正的毫秒级时间对我们来说就很难察觉了。 

  你看,秒杀不成功,并不完全是运气不好,很有可能是我们的时间与淘宝服务器的时间不同步。那么有没有办法可以提高秒杀成功率呢?当然,办法还是有的。 

  首先,也是最重要的一条就是,我们要让自已手机的时间和淘宝的时间同步。想想我们原来的对表。你家里的表的时间到了七点并不意味着电视上就会播出新闻联播。只有电视上的时间到了七点才会播放。所以我们的只有把手机的时间与淘宝服务器的时间同步。才能保证准时的按照淘宝设定的时间进行秒杀。 

  其次,我们还要解决信息在传递过程中的延迟。怎么减少延迟呢?当然是离服务器越近越好。你想想,假如我通过网络要告诉我的邻居今天超市大促销,我的信息传递到邻居处沿途经过的网站较少,路径改变的空间也较小,所以也可以很快的传递到邻居处。如果你离的越远,网络路径上的结点和线路也越长,造成的延迟也就越大。所以当你的信息到达淘宝服务器,可能那些邻近淘宝服务器的小伙伴们,已经近水楼台先得月了。 

  最后,要想秒杀成功你还得拉一条专属于你个人的网络专线连接到淘宝服务器。你想想在双十一前几分钟,全世界的信息都往淘宝服务器飞那是一个什么样的景象,你的信息进入淘宝就跟看演唱会一样需要排队入场,而这时候无论你距网站远近,都会造成请求时间信息路径和发送时间信息路径严重不一致、不对称和严重悬殊,所以导致与淘宝服务器的时间不同步。而要是你有一条VIP通到,你想想你的信息是不是可以准时的冲上看台,成功实现秒杀呢?2015年,美洲和欧洲之间就建成了一条横跨大西洋的海底光缆——希伯尼来快速光缆,这条光缆最大的优势就是比之前的海底光缆的信息延迟减少了5ms,达到59.9ms。为什么为了这5ms的延迟要建立这么大一个工程呢?因为专业的市场研究机构TABB曾做出过评估,在金融电子交易中,交易处理时间比竞争对手慢5ms,就会损失1%的利润。而慢10ms,利润损失就会扩大到10%。所以为了成功秒杀建立一条专属网络是十分必要的。 

  当然所有的一切条件都具备了,还需要你有一个快速的反应能力。毕竟你的生物延迟可能会比网络延迟更大哦,所以延迟可能会迟到,但从不会缺席。多刷新多同步减少时间差总是没错的。最后也预祝各位下次能够秒杀成功。