互聯網用戶發起一次請求經歷了哪些過程?

李智慧老師說得非常棒,下面引自李智慧老師的《大型網站技術架構:核心原理與案例分析》一書以及《從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數據庫,甚至用搜索引擎查找,得到數據後,進行相關計算,將結果返回給應 用服務器。

應用服務器將結果包裝成前端需要的格式後繼續返回,經過前面的訪問通道,最後到達用戶發起請求的地方,完成一次互聯網請求的旅程。

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