原文地址:当你访问淘宝的时候,发生了什么?
因为准备阿里的面试(这个问题以前在阿里的笔面试中出现过),所以把这个问题还翻出来复习了一下。太细节的地方背起来当然没什么意义,这里我就整理每一步大概做了哪些事情以及涉及到阿里相关的那些技术。
1. 浏览器查询DNS服务器
在浏览器中键入的只是网址,那么浏览器要知道具体的服务器就要查询DNS服务器,将www.taobao.com
转换成相应的IP地址。阿里旗下网站的每日访问量巨大,不可能将所有访问都解析到一个IP地址上,那么这一步就涉及到阿里的负载均衡系统。
2. 产生PV,同时如果是独立用户那么将产生UV
PV指的是Page View,页面被刷新一次就记一次数。
UV指的是User View,一个用户访问一次就记一次数,无论这个用户访问了多少个页面或者刷新了多少遍,都只记一次UV。
3. 从CDN中获取素材
阿里旗下的网站——尤其是淘宝和天猫——富文本素材众多,那么如果都从服务器上读取的话,一来速度慢,二来对服务器的压力也大。所以这一步就涉及到阿里的CDN与分布式文件系统。阿里在全国建立了上百个CDN节点,CDN指的是内容分发网络。
4. 搜索
这是很多上淘宝天猫要做的第一件事情,那么阿里的后台系统将搜索行为分为以下四个类型:
- 浏览型
- 查询型
- 对比型
- 确定型
针对不同的搜索类型,会出现不同的结果。这里涉及到阿里的搜索引擎和日志系统。搜索引擎中包含了自然语言处理和中文分词以及其他技术。日志系统是记载了用户做出的各类行为,比如查询、交易、取消交易等等,这些都会被保存下来。
5. 交易快照
只要是进行过的交易都会记录下来,无论商品的信息是否发生了改变。那么保存这些信息是需要非常巨大的存储代价的,那么这一步就涉及到阿里的分布式存储系统,同时注意这些数据保存之前都是会进行压缩的。
6. 数据传输
无论是日志还是交易信息,乘以阿里每日的交易量都是一个很大的数据,所以阿里还开发了自己的数据传输系统。
7. 云梯
最后,你在阿里旗下的所有网站的所有行为,都会被大规模数据挖掘系统云梯进行分析,以求最大程度地还原和定位你这个人。