互联网用户发起一次请求经历了哪些过程?

李智慧老师说得非常棒,下面引自李智慧老师的《大型网站技术架构:核心原理与案例分析》一书以及《从0开始学大数据》:

首先,一个请求从Web或者移动App上发起,请求的URL是用域名标识的,比如taobao.com这 样,而HTTP网络通信需要得到IP地址才能建立连接,所以先要进行域名解析,访问域名解析服 务器DNS,得到域名的IP地址。

得到的这个IP地址其实也不是淘宝的服务器的IP地址,而是CDN服务器的IP地址,CDN服务器提 供距离用户最近的静态资源缓存服务,比如图片、JS、CSS这些。如果CDN有请求需要的资源 就直接返回,如果没有,再把请求转发给真正的淘宝数据中心服务器。
请求到达数据中心后,首先处理请求的是负载均衡服务器,它会把这个请求分发给下面的某台具体服务器处理。

这台服具体的服务器通常是反向代理服务器,这里同样缓存着大量的静态资源,淘宝也会把一些通常是动态资源的数据,比如我们购物时经常访问的商品详情页,把整个页面缓存在这里,如果请求的数据在反向代理服务器,就返回;如果没有,请求将发给下一级的负载均衡服务器。

这一级的负载均衡服务器负责应用服务器的负载均衡,将请求分发给下面某个具体应用服务器处理,淘宝是用Java开发的,也就是分发被某个Java Web容器处理。事实上,淘宝在Java Web容器之前,还前置了一台Nginx服务器,做一些前置处理。

应用服务器根据请求,调用后面的微服务进行逻辑处理。如果是一个写操作请求,比如下单请求,应用服务器和微服务之间通过消息队列进行异步操作,避免对后面的数据库造成太大的负载压力。

微服务如果在处理过程中需要读取数据,会去缓存服务器查找,如果没有找到,就去数据库查找,或者NoSQL数据库,甚至用搜索引擎查找,得到数据后,进行相关计算,将结果返回给应 用服务器。

应用服务器将结果包装成前端需要的格式后继续返回,经过前面的访问通道,最后到达用户发起请求的地方,完成一次互联网请求的旅程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章