分類  >  互聯網 >

金山口試CDN

tags:    時間:2014-05-04 18:55:58
金山面試CDN

History

今天去金山網路面試的時候,被問到性能優化,我說了幾個,最後說到了CDN,我說要盡量把靜態的內容放置到CDN,但是為什麼呢?面試官說既然你說到CDN,你就說說它的原理。之前有看過,但是忘記差不多了。

Summary

按我個人理解來說它是遵循就近原則,給用戶找到最近的伺服器來提供用戶的靜態內容,比如CSS文件、圖像等,來提高用戶訪問網站的響應速度。

A content delivery network (CDN) is a system of distributed servers (network) that deliver webpages and other Web content to a user based on the geographic locations of the user, the origin of the webpage and a content delivery server.This service is effective in speeding the delivery of content of websites with high traffic and websites that have global reach. The closer the CDN server is to the user geographically, the faster the content will be delivered to the user. CDNs also provide protection from large surges in traffic.

上面說了內容分發網路是基於用戶的地理位置、網頁的源地址還有就是一個內容分發伺服器。距離CDN伺服器越近的用戶,就能越快地獲取到靜態內容

description

有比較才有感覺到區別!

1 傳統訪問頁面方式
在這篇文章What really happens when you navigate to a URL中,已經很清楚告訴我們頁面究竟是如何在伺服器和客戶端之間傳送的。簡單來說就是:
(1) 用戶提交域名
(2) 瀏覽器對域名解析,找不到對於的IP;再到操作系統,還是沒有;再到路由器,再沒有就到DNS伺服器找
(3) 最後找到對應的IP地址,向域名的服務主機發出數據訪問請求
(4) 伺服器就返回頁面的內容給客戶端
但是在這裡的問題就是如果訪問量很大的網站的話,比如新浪微博、facebook等大型網站,這樣子的伺服器肯定會被擠爆了,那怎麼辦呢?緩衝或者說是存儲這種理念在馮·諾依曼提出之後就特別流行,確實,CDN也是採用緩存的理念
2 CDN緩存后的網站的訪問過程
(1) 用戶向瀏覽器提供要訪問的域名;
(2) 瀏覽器調用域名解析庫對域名進行解析得到CNAME,再解析CNAME域名獲取IP地址,在此過程中,使用的全局負載均衡DNS解析,如根據地理位置信息解析對應的IP地址,使得用戶能就近訪問;
(3) 這次解析到只是CDN伺服器的IP地址,瀏覽器獲取這個IP地址就向CDN緩存發送請求;
(4) CDN緩存伺服器根據瀏覽器提供的要訪問的域名,通過Cache內部專用DNS解析得到此域名的實際IP地址,再由緩存伺服器向此實際IP地址提交訪問請求,緩存伺服器就好像是中間人那樣子;
(5) CDN緩存伺服器獲取內容后,一方面在本地存儲,以便客戶端下次訪問;另外一方面就發送給客戶端;
(6) 客戶端就把從CDN緩存伺服器返回的內容顯示,下次訪問就直接訪問CDN緩存伺服器。
其實從上面就好像我們的計算機要訪問數據那樣子,因為CPU的運算能力很快,快到內存根本跟不上。如果CPU每次運算一下就要去內存獲取數據的話,那麼計算機的效率太低了。這樣子的話,我們設置緩存,能夠緩衝兩者速度不匹配而導致的效率問題。所以CPU要訪問數據,先到緩存中找,找不到就去內存中找,然後在緩存中添加對應的數據,下次要訪問改數據就直接到緩存中找就行了。

references

內容分發網路百度百科

推薦閱讀文章

Bookmark the permalink ,來源:互聯網