CDN簡談及實現原理分析

很多人可能不了解cdn,認為自己沒用過cdn,其實不然,我們已經在用了。先舉個栗子,大家有沒有想過為什么雙十一的時候這么多人搶購,流量超級大,為什么很少出現網頁加載不出來,也沒見過淘寶服務器奔潰呢?

舉個栗子

正常情況下肯定會奔潰的,你想想,上億人同時向一臺服務器發起請求,服務器還不得冒煙啊?

實際上cdn就在里面發揮著功不可沒的功勞。拋開技術方面的優化,假設淘寶只有一臺服務器A在運行,從原則上來說我們是應該從這臺A服務器下載資源的(html、js、css等),可是淘寶會把這些靜態資源分發到全國各個地方的網絡節點上(可以理解成每一個城市部署一個機房),我們訪問的時候實際是從離我們最近的那臺服務器B下載的資源,這就是cdn。

1、什么是cdn

cdn顧名思義是一個英文縮寫,全稱是content delivery network(內容分發網絡),即服務商通過在世界各地部署大量服務器節點緩存源站靜態資源(目標服務器),當用戶訪問時返回最優線路的資源,提高網頁響應速度,給用戶帶來更好的體驗。

eg:阿里云服務商在全國部署了大量的服務器,某公司覺得自己的服務器帶寬不夠大,希望在阿里云的這些服務器上分擔壓力,所以阿里云服務商會從該公司的網站中拉取靜態資源(源站資源),然后在自己的各個服務器上添加該資源的緩存,最后返回一個url地址給該公司,該公司只需要把之前的資源地址(js、css、html、img等)替換成這個url就可以了;當用戶訪問時,實際上走的請求是阿里云的服務器,然后阿里云返回一個最快的資源給你(如你在廣州就返回廣州服務器的資源,而不是北京服務器的資源)

cdn的核心技術在于智能dns與內容存儲,用戶訪問時根據所在線路與位置,就近選擇最快的服務器節點,然后從緩存中取出相應內容,避免了直接從源站拉取資源、減低了網絡阻塞。

下面我們先說一下cdn的三大組成部分

1.1、squid 代理web緩存服務器

前面我們也說到,服務商會返回一個url給源站,如https://aliyun.cdn.com/xxx/main.js,那么我們就不難想到它其實就是一個web服務器提供(像我們的iis、tomcat、nginx等),cdn下使用的web服務器大多是squid,下面說一下squid以及nginx在linux下的安裝:

1、yum? install? squid? ?-g //安裝squid

2、vim /etc/squid/squid.conf //配置端口代理


1、yum? install? nginx? -g? //安裝nginx

2、vim /etc/nginx/nginx.conf? //配置端口代理

所以squid就是一個web代理服務器,只不過它在緩存服務方面比較出色。

1.2、計算機集群

從執行性能上來說,個人PC? <? 服務器? <??計算機集群,那么什么是計算機集群呢?其實從定義上來說,計算機集群是通過松散集成的計算機軟件或硬件連接起來的完成計算工作的計算機系統,通俗來理解就是把很多服務器組合起來,共同完成某一項任務,這樣工作效率自然會大于一臺電腦。

作為cdn服務的提供商(服務商),他們會在各個城市部署很多的服務器,從而組成一張龐大的計算機集群網,使得各個地方的用戶附近都至少有一臺可訪問的服務器。

1.3、智能dns

說到智能dns,那么我得說一下“不智能的”dns。dns,全稱domain name system,域名系統,萬維網上的每一個設備(pc、手機等)都有一個屬于自己的ip地址,也可以當做設備的身份證,然而這個ip地址太過長了,不便于記憶,所以就用域名來作為ip的別名,如百度的域名是baidu.com,當用戶輸入百度域名并回車后,通過dns系統獲取到真實ip地址14.215.177.39。

dns解析流程:瀏覽器host? ?》? ?系統host? ?》? ?運營商解析? ?》? ?根域解析

我們普通的dns往往慢就慢在跨線路和跨國際,能不能根據用戶所在地址,返回合適的ip地址呢,這就產生了智能dns。

智能dns位于cdn服務器層,它根據用戶來源的線路以及所在的位置,根據當前網絡負載情況,選取出距離最近的同線路服務器,并放回該服務器的ip地址(cdn計算器集群的每一臺服務器都具備相同的功能與內容,因而返回不同的ip,處理的結果都是一樣的)。

2、cdn產生背景

對于大部分的中小型企業,服務器性能不會很好,帶寬也不會很大,一旦遇到訪問量“井噴”的情況就會奔潰了,比如雙十一、12306春運期間甚至是一些學校的選課系統,那么解決措施往往就是出錢出力升級配置了。

其次由于我國國土遼闊,存在著不少的網絡運營商,如巨頭電信聯通,這也就導致了不同運營商(線路間)互聯不互通,如廣州電信用戶訪問北京聯通機房的服務器速度慢。

這時候cdn就應運而生了,它依靠著強大的服務器集群能力為各網站提供緩存加速服務。

3、cdn加速原理

cdn之所以快靠的是多節點、多線路、用緩存;

多節點,也就是多服務器,這樣讓用戶沒必要直接向源站請求資源,而是向最近的服務器請求就行了;

多線路,避免了跨線路互聯不互通的尷尬;

用緩存,這個前面沒有怎么提,cdn服務器會從源站拉取資源并緩存到內存中,當用戶訪問的時候直接從內存中取出來,這樣就比從硬盤中去出來快了不少;其次cdn服務器知道源站資源發生變化后,會通知其它服務器同時更新資源。

4、cdn的優勢

智能dns讓用戶可以訪問同線路最近的服務器

cdn的緩存機制可以加快訪問速度,也可以緩解源站服務器壓力(因為根本不會去訪問源站)

cdn讓大規模的用戶請求架構變得簡單

cdn性價比高,同帶寬需求下cdn服務比增加帶寬劃算

5、cdn適用范圍

靜態和更新頻率低的內容

數據流量大的產品

帶寬需求大的產品

有錢的主...


其實cdn服務商有不少,如阿里云cdn、騰訊云cdn、百度云cdn、網易云cdn、360cdn等等

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容