什么是CDN?它解決了什么難題?5分鐘讓你明明白白!
時間:2023-01-31 20:40:01 | 來源:建站知識
時間:2023-01-31 20:40:01 來源:建站知識
CDN這個詞在我們技術(shù)圈中經(jīng)常聽到,什么CDN節(jié)點呀、CDN加速呀,當同事跟你談到這些話題的時候,是不是大家都只顧著點頭呢?
CDN其實作用很大,我們每天都在享受CDN帶來的福利,只是你感受不到。比如說
在線教育誕生之初,線上直播效果其實是非常差的,畫質(zhì)不清晰也就算了,有時候直接會卡到視頻和聲音不同步,這些難題直接影響到在線教育的日常運作。CDN憑借低時延的產(chǎn)品特性,讓數(shù)據(jù)得以即時傳輸,為師生帶來響應快速、使用流暢的視頻觀看體驗。
在
電子商務領(lǐng)域,每一次大促的背后都意味著電商交易流量的高峰,要讓電商走得更遠、更順暢,少不了CDN技術(shù)的加持。CDN利用充足帶寬資源,做好CDN冗余儲備,在用戶訪問突增時靈活、快速為客戶調(diào)配資源,避免用戶的“訪問洪峰”影響購物體驗,同時緩解源站壓力,充分保障平臺訪問響應速度以及成功率。
在我們平時
日常生活中,大家是不是特別喜歡刷短視頻,比如抖音、快手等,CDN采用網(wǎng)頁靜態(tài)資源優(yōu)化加速分發(fā),縮短網(wǎng)頁響應時間,讓我們刷起視頻來更加流暢。
還有好多的場景都能看到CDN在背后做的重大貢獻,那么CDN到底是個啥,它到底解決了什么樣的難題?原理是啥?今天帶你學習一波!
首先要明白什么是CDN?
CDN英文全稱
Content Delivery Network
,中文翻譯即為
內(nèi)容分發(fā)網(wǎng)絡。它是建立并覆蓋在承載網(wǎng)之上,由分布在不同區(qū)域的邊緣節(jié)點服務器群組成的分布式網(wǎng)絡。
CDN應用廣泛,支持多種行業(yè)、多種場景內(nèi)容加速,例如:圖片小文件、大文件下載、視音頻點播、直播流媒體、全站加速、安全加速。
借用阿里云官網(wǎng)的例子,來簡單介紹CDN的工作原理。假設通過CDN加速的域名為
www.a.com
,接入CDN網(wǎng)絡,開始使用加速服務后,當終端用戶(北京)發(fā)起HTTP請求時,處理流程如下:
- 當終端用戶(北京)向
www.a.com
下的指定資源發(fā)起請求時,首先向LDNS(本地DNS)發(fā)起域名解析請求。 - LDNS檢查緩存中是否有
www.a.com
的IP地址記錄。如果有,則直接返回給終端用戶;如果沒有,則向授權(quán)DNS查詢。 - 當授權(quán)DNS解析
www.a.com
時,返回域名CNAME www.a.tbcdn.com對應IP地址。 - 域名解析請求發(fā)送至阿里云DNS調(diào)度系統(tǒng),并為請求分配最佳節(jié)點IP地址。
- LDNS獲取DNS返回的解析IP地址。
- 用戶獲取解析IP地址。
- 用戶向獲取的IP地址發(fā)起對該資源的訪問請求。
- 如果該IP地址對應的節(jié)點已緩存該資源,則會將數(shù)據(jù)直接返回給用戶,例如,圖中步驟7和8,請求結(jié)束。
- 如果該IP地址對應的節(jié)點未緩存該資源,則節(jié)點向源站發(fā)起對該資源的請求。獲取資源后,結(jié)合用戶自定義配置的緩存策略,將資源緩存至節(jié)點,例如,圖中的北京節(jié)點,并返回給用戶,請求結(jié)束。
從這個例子可以了解到:
- CDN的加速資源是跟域名綁定的。
- 通過域名訪問資源,首先是通過DNS分查找離用戶最近的CDN節(jié)點(邊緣服務器)的IP
- 通過IP訪問實際資源時,如果CDN上并沒有緩存資源,則會到源站請求資源,并緩存到CDN節(jié)點上,這樣,用戶下一次訪問時,該CDN節(jié)點就會有對應資源的緩存了。
簡單講,CDN就是通過將站點內(nèi)容發(fā)布至遍布全球的海量加速節(jié)點,使其用戶可就近獲取所需內(nèi)容。
CDN主要解決這么些問題:
- 物理距離遠,多次網(wǎng)絡轉(zhuǎn)發(fā),延時高不穩(wěn)定;
- 所在運營商不同,需運營商之間轉(zhuǎn)發(fā)繞行;
- 網(wǎng)絡帶寬處理能力有限,海量請求時,響應速度與可用性降低。
CDN工作原理
CDN的工作原理就是將源站的資源緩存到位于全國各地的CDN節(jié)點上,用戶請求資源時,就近返回節(jié)點上緩存的資源,而不需要每個用戶的請求都回您的源站獲取,避免網(wǎng)絡擁塞、分擔源站壓力,保證用戶訪問資源的速度和體驗。
為什么要用 CDN?
如果你在經(jīng)營一家網(wǎng)站,那你應該知道幾點因素是你制勝的關(guān)鍵:
- 內(nèi)容有吸引力
- 訪問速度快
- 支持頻繁的用戶互動
- 可以在各處瀏覽無障礙
另外,你的網(wǎng)站必須能在復雜的網(wǎng)絡環(huán)境下運行,考慮到全球的用戶訪問體驗。你的網(wǎng)站也會隨著使用越來越多的對象(如圖片、幀、CSS及APIs)和形形色色的動作(分享、跟蹤)而系統(tǒng)逐漸龐大。所以,系統(tǒng)變慢帶來用戶的流失。
Google及其它網(wǎng)站的研究表明,一個網(wǎng)站每慢一秒鐘,就會丟失許多訪客,甚至這些訪客永遠不會再次光顧這些網(wǎng)站。可以想像,如果網(wǎng)站是你的盈利渠道或是品牌窗口,那么網(wǎng)站速度慢將是一個致命的打擊。
這就是你使用CDN的第一個也是最重要的原因:
為了加速網(wǎng)站的訪問除此之外,CDN還有一些作用:
1. 為了實現(xiàn)跨運營商、跨地域的全網(wǎng)覆蓋
互聯(lián)不互通、區(qū)域ISP地域局限、出口帶寬受限制等種種因素都造成了網(wǎng)站的區(qū)域性無法訪問。CDN加速可以覆蓋全球的線路,通過和運營商合作,部署IDC資源,在全國骨干節(jié)點商,合理部署CDN邊緣分發(fā)存儲節(jié)點,充分利用帶寬資源,平衡源站流量。
2. 為了保障你的網(wǎng)站安全
CDN的負載均衡和分布式存儲技術(shù),可以加強網(wǎng)站的可靠性,相當無無形中給你的網(wǎng)站添加了一把保護傘,應對絕大部分的互聯(lián)網(wǎng)攻擊事件。防攻擊系統(tǒng)也能避免網(wǎng)站遭到惡意攻擊。
3. 為了異地備援
當某個服務器發(fā)生意外故障時,系統(tǒng)將會調(diào)用其他臨近的健康服務器節(jié)點進行服務,進而提供接近100%的可靠性,這就讓你的網(wǎng)站可以做到永不宕機。
4. 為了節(jié)約成本投入
使用CDN加速可以實現(xiàn)網(wǎng)站的全國鋪設,你根據(jù)不用考慮購買服務器與后續(xù)的托管運維,服務器之間鏡像同步,也不用為了管理維護技術(shù)人員而煩惱,節(jié)省了人力、精力和財力。
5. 為了讓你更專注業(yè)務本身
CDN加速廠商一般都會提供一站式服務,業(yè)務不僅限于CDN,還有配套的云存儲、大數(shù)據(jù)服務、視頻云服務等,而且一般會提供7x24運維監(jiān)控支持,保證網(wǎng)絡隨時暢通,你可以放心使用。并且將更多的精力投入到發(fā)展自身的核心業(yè)務之上。
CDN與傳統(tǒng)網(wǎng)站訪問的區(qū)別
CDN主要功能是在不同的地點緩存內(nèi)容,通過負載均衡技術(shù),將用戶的請求定向到最合適的緩存服務器上去獲取內(nèi)容,比如說,是北京的用戶,我們讓他訪問北京的節(jié)點,深圳的用戶,我們讓他訪問深圳的節(jié)點。通過就近訪問,加速用戶對網(wǎng)站的訪問。解決Internet網(wǎng)絡擁堵狀況,提高用戶訪問網(wǎng)絡的響應速度。
傳統(tǒng)訪問訪問:
使用了CDN的網(wǎng)站訪問:
與傳統(tǒng)訪問方式不同,CDN網(wǎng)絡則是在用戶和服務器之間增加緩存層,將用戶的訪問請求引導到最優(yōu)的緩存節(jié)點而不是服務器源站點,從而加速訪問速度。
完整的CDN工作流程:
通過權(quán)威DNS服務器來實現(xiàn)最優(yōu)節(jié)點的選擇,通過緩存來減少源站的壓力
CDN的應用場景
1、網(wǎng)站站點/應用加速
站點或者應用中大量靜態(tài)資源的加速分發(fā),建議將站點內(nèi)容進行動靜分離,動態(tài)文件可以結(jié)合云服務器ECS,靜態(tài)資源如各類型圖片、html、css、js文件等,建議結(jié)合 對象存儲OSS 存儲海量靜態(tài)資源,可以有效加速內(nèi)容加載速度,輕松搞定網(wǎng)站圖片、短視頻等內(nèi)容分發(fā)。
2、視音頻點播/大文件下載分發(fā)加速
支持各類文件的下載、分發(fā),支持在線點播加速業(yè)務,如mp4、flv視頻文件或者平均單個文件大小在20M以上,主要的業(yè)務場景是視音頻點播、大文件下載(如安裝包下載)等,建議搭配對象存儲OSS使用,可提升回源速度,節(jié)約近2/3回源帶寬成本。
3、視頻直播加速
視頻流媒體直播服務,支持媒資存儲、切片轉(zhuǎn)碼、訪問鑒權(quán)、內(nèi)容分發(fā)加速一體化解決方案。結(jié)合彈性伸縮服務,及時調(diào)整服務器帶寬,應對突發(fā)訪問流量;結(jié)合媒體轉(zhuǎn)碼服務,享受高速穩(wěn)定的并行轉(zhuǎn)碼,且任務規(guī)模無縫擴展。
4、移動應用加速
移動APP更新文件(apk文件)分發(fā),移動APP內(nèi)圖片、頁面、短視頻、UGC等內(nèi)容的優(yōu)化加速分發(fā)。提供httpDNS服務,避免DNS劫持并獲得實時精確的DNS解析結(jié)果,有效縮短用戶訪問時間,提升用戶體驗。
CDN相關(guān)的術(shù)語解釋
1、Origin Server源站
做 CDN 之前的客戶真正的服務器。
2、User
訪問者,也就是要訪問網(wǎng)站的網(wǎng)民。
3、Last Mile
最后一公里,也就是網(wǎng)民到他所訪問到的 CDN 服務器之間的路徑。
4、域名
域名是Internet網(wǎng)絡上的一個服務器或一個網(wǎng)絡系統(tǒng)的名字,全世界,沒有重復的域名。
5、CNAME記錄
它是一個別名記錄( Canonical Name );當 DNS 系統(tǒng)在查詢 CNAME 左面的名稱的時候,都會轉(zhuǎn)向 CNAME 右面的名稱再進行查詢,一直追蹤到最后的 PTR 或 A 名稱,成功查詢后才會做出回應,否則失敗。
6、CNAME域名
CDN的域名加速需要用到CNAME記錄,在服務器控制臺配置完成CDN加速后,您會得到一個加速后的域名,稱之為CNAME域名(該域名一定是
*.*http://wljslmz.com
), 用戶需要將自己的域名作CNAME指向這個
*.*http://wljslmz.com
的域名后,域名解析的工作就正式轉(zhuǎn)向云服務器,該域名所有的請求都將轉(zhuǎn)向云CDN的節(jié)點。
7、DNS
DNS即Domain Name System,是域名解析服務的意思。它在互聯(lián)網(wǎng)的作用是:把域名轉(zhuǎn)換成為網(wǎng)絡可以識別的ip地址。人們習慣記憶域名,但機器間互相只認IP地址,域名與IP地址之間是一一對應的,它們之間的轉(zhuǎn)換工作稱為域名解析,域名解析需要由專門的域名解析服務器來完成,整個過程是自動進行的。比如:上網(wǎng)時輸入的百度一下,你就知道會自動轉(zhuǎn)換成為
220.181.112.143
8、邊緣節(jié)點
也稱CDN節(jié)點、Cache節(jié)點等;是相對于網(wǎng)絡的復雜結(jié)構(gòu)而提出的一個概念,指距離最終用戶接入具有較少的中間環(huán)節(jié)的網(wǎng)絡節(jié)點,對最終接入用戶有較好的響應能力和連接速度。其作用是將訪問量較大的網(wǎng)頁內(nèi)容和對象保存在服務器前端的專用cache設備上,以此來提高網(wǎng)站訪問的速度和質(zhì)量。
9、cache
cache高速緩沖存儲器一種特殊的存儲器子系統(tǒng),其中復制了頻繁使用的數(shù)據(jù)以利于快速訪問。存儲器的高速緩沖存儲器存儲了頻繁訪問的RAM位置的內(nèi)容及這些數(shù)據(jù)項的存儲地址。當處理器引用存儲器中的某地址時,高速緩沖存儲器便檢查是否存有該地址。如果存有該地址,則將數(shù)據(jù)返回處理器;如果沒有保存該地址,則進行常規(guī)的存儲器訪問。因為高速緩沖存儲器總是比主RAM存儲器速度快,所以當RAM的訪問速度低于微處理器的速度時,常使用高速緩沖存儲器。