剁手与春运的关系

作者: 吉星

来源: 科学电台 SciFM 中科院物理所

发布日期: 2017-11-15 10:40:19

本文通过双十一购物节与春运买票的类比,介绍了高并发、服务器缓冲、负载均衡、原子操作、CDN、DNS和路由等计算机技术名词,解释了这些技术在大型电商系统中的应用,强调了程序员在维护这些复杂系统中的重要性。

经历了惨烈的双十一之后,崭新的物理所科学电台又和大家见面了!我们的小编们在疯狂剁手后,纷纷装上假肢重新投身科研!在刚刚结束的双十一,京东和天猫双双创下了新纪录,其中京东交易额总量高达1271亿元,而天猫则以1682亿元完美收关!在紧张刺激的剁手环节中,不知道大家有没有抢到自己想要的宝贝呢?

趁着双十一的热情还没有冷却,想和大家分享一些双十一背后的故事,谈一谈程序员们是如何维护诸如京东啊、淘宝天猫啊这样大型的电商系统的,今天,通过7个基础的计算机名词了解一下购买宝贝时使用的计算机技术吧!希望大家可以对程序员们多一份理解与包容,也算是给那些没能抢到心仪宝贝的小伙伴们一份安慰吧。

第一个向大家介绍的名词叫做“高并发”,首先淘宝服务器对并发性的要求是非常高的,并发是计算机学科的一个名词,指同一个事物在一定间隔内多次发生,而高并发简而言之就是并发程度很高。大家可以想象一下春运时去北京火车站买票的场景,那可谓是人山人海了,然而售票处一共就只有五个窗口,也就是说售票处的并发是每次5个人,那剩下的人就只好老老实实去排队了。

双十一“剁手”也是这个原理,大家把“剁手”的请求信息发给淘宝的服务器,可是一个服务器一次处理的请求是有限的,超出范围的信息也只能乖乖去排队了。所以有可能轮到你的时候宝贝已经卖完了。这一瞬间请紧紧的抱住自己。

继续用买票举例。当你千辛万苦千里迢迢的从怀柔来到北京火车站买票,来了以后惊呆了,你发现广场上都是人,都是来买票的,你连广场都挤不进去,总不能站在大马路上排队吧,于是乎你只能再次坐车回到怀柔了。

这就是服务器缓冲的问题,想象一下双十一那么多请求信息无法及时处理,在哪儿排队呢?答案就是在服务器缓冲期,缓冲区暂存了还未处理的“剁手”请求,就像北京站的购票大厅和广场一样,可是要是缓冲区占满了怎么办?这时候服务器会选择丢弃你的“剁手”请求,你只能再次发送了。

为了顺利买票,第二天你又来到了北京站,为了挤进广场内,你不得不早上5点起床(真是够累的),再次千辛万苦千里迢迢从怀柔来到火车站,这次没有那么多人了,然后你找个队伍开始排队,突然管理人员拿着大喇叭喊着:“为了满足,广大顾客购票需求,在北京火车站二楼新开了几个窗口售票,那里人比较少,请大家在那里排队!”,听到这个消息你飞奔去了二楼发现果然人比较少。拿着大喇叭的火车站管理员就是起了负载均衡的作用。

阿里巴巴有成千上万台服务器,所以需要负载均衡来管理,将“剁手”请求比较平均地发往不同的服务器,使得每个服务器的负载基本相同,这就是负载均衡了。

接下来这个名词告诉我们,“剁手”的过程要干脆利落、一气呵成。历经种种磨难终于轮到你买票了,付了钱正准备打印车票的时候,停电了(也是够倒霉的),于是售票员只好把钱退还给你,可怜的你再次买票失败。付钱买票的过程就是一个原子操作,原子操作是数据库中的一个概念,指一个操作只有完成或未完成的概念,没有做一半。双十一你支付宝付完钱后,就必然已经下单,再不必担心钱付了,而服务器突然崩溃,购买失败的情况。

继续来说说买票。由于每天买票的人太多,火车站决定在北京其他地方设立售票处,于是你就可以在怀柔买票了,这是CDN的原理,CDN的中文名是内容分发网络,内容分发网络就是将网站服务存在其它的服务器上,比如阿里巴巴的主服务器在杭州,但全国其他地方也会有CDN服务器,当你在北京访问淘宝网,其实访问的是华北地区淘宝的CDN服务器,CDN的技术大大缓解了主服务器的压力,同时又很好地提升了用户的体验。

DNS称之为域名解析,是将域名和ip地址关联起来,还是拿火车票举例吧,怀柔终于可以买火车票了,真是皆大欢喜,可是位置在哪里呢?于是你打开了百度进行搜索,很快百度告诉了你具体地址,这就是一个DNS查询的过程。

在你登陆淘宝页面时,你输入的只是淘宝网的网址也就是域名,而你的计算机会自动向周围的服务器询问这个域名所对应的IP地址,其实在不同的地方返回的淘宝的IP地址是不一样的,这归功于上面已经提到的CDN的服务,你最近的DNS服务器会返回给你离你最近的CDN服务器的ip地址。

路由在计算机中是一个寻路的概念。你知道了怀柔买票的地址却不知道怎么去,于是你打开了百度地图,百度地图告诉你怎么走,这就是个寻址过程。

双十一的时候抢商品抢的太慢也可能是寻址的锅,你的电脑会将你的“剁手”信息发给离你最近的路由器,离你最近的路由器会存储大量的路由表,也就是所谓的“网络世界的地图”,路由器之间会通过某些机制不断地更新路由表,在这里就不仔细介绍了,最后你的“剁手”信息发送给阿里巴巴的服务器。那么问题来了你的信息是通过最短路径发过去的吗?并不是。

这也是为什么现在市面上会有会有许多加速器就是帮助你优化路由,同时对底层的一些协议优化,来达到减少延时的效果。这些加速器在观看视频和玩游戏时有很大的用处,不过并没有专门用于购买货物时使用的加速器,现在一些黄牛手上应该有类似于这样的加速服务,这导致很多热门的票一票难求。

其实搭建一个大型的电商系统是非常复杂的,今天介绍的这些计算机名词只是最基本的技术。

我们总抱怨12306订票网站经常崩溃,其实12036开发难度极其高,据说开发时向阿里巴巴做过技术咨询,12306尚且如此,更何况像阿里这样的企业。这些庞大的网络系统都是成千上万的程序员一行一行码出来的,里面都是满满的脑细胞和心头血啊!希望大家善待周围的程序员小伙伴们,多多探望投食,关爱程序员,人人有责,因为这可是关系到我们的剁手大业啊……

对了,最后有没有抢到火车票呢?啊呀忘了告诉大家,最近许多网站都推出了抢票软件,真的很好用,推荐给大家!!!!抢票软件,程序员之间的博弈,你值得拥有!今天的节目到此结束了,或许你并没有记住这些名词,不过,这都不重要,重要的是,你再一次认识到程序员的重要性,再次呼吁大家,对身边的程序员好一点吧!我们下期节目再见!

UUID: da54f560-2c09-44d7-8e59-ce27d668e495

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/中科院物理所公众号-pdf2txt/2017/中科院物理所_2017-11-15_没想到“剁手”这事还和春运有关!!!.txt

是否为广告: 否

处理费用: 0.0059 元