CDN是什麼?使用CDN有什麼優勢?
剛剛開始學習Bootstrap,發現一些文章中總是提起使用CDN服務。
請問這個CDN服務是必須的嗎?我的系統都是在純內網裡面使用,與Internet不聯通,還需要CDN嗎?
這個問題的解答,需要分五步。
第一步,HTML的文件引用:
HTML的文件頭(也有文件中,文件尾)那邊常有其他文件引用,比如CSS以及JS的引用。
就以bootstrap常用的引用來舉個栗子你常見的引用可能會是這樣的:&
&
&
&
&
&
&
&
&
&
&
&
這之中,& 這段就是外部腳本文件的一個鏈接,當前的這種鏈接是相對URL,指向站點內的文件,即你本項目里對應路徑下面放置的文件。可以在 HTML &
這樣即是引用其他站點的js。
CSS文件的引用與此類似:HTML & 標籤的 href 屬性圖片以及其他文件的引用也類似,不贅述。第二步,系統的資源引用在一個網站項目中,頁面里經常會有許多js以及css的引用,接觸過開發項目的一般都會了解,大部分界面里的腳本引用並不是像第一步里的那麼精簡,如果是直接引用項目內文件的話,他們可能是這樣的:&
&
&
&
&
&
可能甚至引用的更多,這樣將資源文件與業務代碼一鍋燉的方式適用於小型的,應用伺服器壓力並不是太大的系統(並發、帶寬、存儲空間、資源等等)。這種方式的優點是開發省力,發布省力,對伺服器要求小,省錢,沒有具體公網接入需求。許多小型,內部使用型的網站系統往往採取這種形式放置資源文件。
第三步,系統訪問量變高了,速度變慢了怎麼辦怎麼辦?優化系統部署唄。怎麼優化?優化方式有很多,讀寫分離,負載均衡,這方面的東西可以講上三天三夜。具體到本問題的範疇內,那就是資源伺服器與應用伺服器的分離。粗暴的理解方式就是,就是應用安在應用伺服器(一台或者是集群),資源部署在資源伺服器(單台或者是集群),這時候,js以及css的引用就需要更改為絕對URL,指向對應的資源伺服器。比如知乎的引用:&&
&
&
&
&
&
&
&
&
&
有興趣的話,你可以打開這個鏈接看看是什麼頁面:http://static.zhihu.com/
也可以打開這個看看:http://static.zhihu.com/static第四步,網路方面的優化
網站的訪問速度,只基於一點,那就是頁面包含的內容傳輸到用戶電腦的速度,伺服器搭的再好再完美,如果用戶到伺服器的鏈路之間有一段比較緩慢的話,整體速度也會被拉的十分差勁。想像一下,你給公司做了個運行於公司內網的網站,一切運行良好,分散式部署也已搭建完畢,一切都很完美。
後來,你公司運營良好,開了一個十分遙遠的分公司(不要問為什麼遙遠,再問自絕經脈),你們的內網也同時連了過去(對,就是那種很直接的搭了幾條網線就把兩個區域網連成一個區域網的黑科技)。但是因為太遠了線節點太多了,分公司訪問公司的系統十分緩慢,這時候你就愁啊,這可咋辦?那不行就在分公司那邊部署一套內容緩存好了,內容進行同步,這樣至少分公司的網頁訪問速度能提升很多,你也可以立功升職加薪了。緊接著,因為你的出色表現,你們公司擴展十分厲害,在全國各地都建立了分公司,你又開始愁了,這不能每個分公司都搭一套啊,累得慌啊。思來想去,那就華東一套華北一套華南一套東北一套這樣分吧,然後搭一些分發伺服器,接入訪問地址,然後跳轉到就近的內容緩存伺服器進行內容讀取,OK,又到了升職加薪的時刻了~對,到這裡,你已經完成了一套簡易CDN的建設。第五步,CDN是什麼?你的搭建只是基於你公司的大型區域網,而現行的流行CDN則是基於地球搭建的超大型區域網--網際網路。它的好處是什麼呢?比如你這麼寫:&
&
&
&
&
&
&
&
&
&
&
上面的地址是百度CDN的鏈接地址。
那麼用戶在讀取網頁內容的時候,就會去百度的就近伺服器上掏這些js和css,而不是在你的伺服器里撈。好處呢,第一,一般來說,訪問速度有保障,穩定性也有保障;第二,你可以省下資源伺服器的一部分資源負擔,節省空間節省流量,艱苦創業,能省則省啊。這時候你會問了,為什麼只有js和css呢?其他的圖片啊html內容啊不能放進CDN嗎?
能啊為啥不能,CDN服務就靠這賺錢呢為啥不能,非廣告非廣告非廣告,你看:CDN-Content Delivery Network-百度開放雲同類產品還有阿里雲等等等等。。你看的文章中的CDN,一般都是指js和css文件的CDN存儲,而對於你的兩個問題,遺憾的告訴你,不是,不能。針對知乎上有關CDN熱點問題:什麼是CDN?為什麼要用?適用哪些場景?常見名詞有哪些?雲棲社區特別邀請到阿里雲視頻服務運營美女:「樰籬」(發音:xue li),來為大家解讀。
作者簡介:阿里花名樰籬,阿里雲視頻服務產品運營
考慮到對CDN認知程度的各層小夥伴,開頭有必要簡單介紹下CDN原理(高年級同學可以直接跳過一):
一、CDN的基本原理和基礎架構
CDN是將源站內容分發至最接近用戶的節點,使用戶可就近取得所需內容,提高用戶訪問的響應速度和成功率。解決因分布、帶寬、伺服器性能帶來的訪問延遲問題,適用於站點加速、點播、直播等場景。
(本章節部分內容摘引自:1.2 CDN的基本工作過程 - 51CTO.COM)
最簡單的CDN網路由一個DNS伺服器和幾台緩存伺服器組成:
- 當用戶點擊網站頁面上的內容URL,經過本地DNS系統解析,DNS系統會最終將域名的解析權交給CNAME指向的CDN專用DNS伺服器。
- CDN的DNS伺服器將CDN的全局負載均衡設備IP地址返回用戶。
- 用戶向CDN的全局負載均衡設備發起內容URL訪問請求。
- CDN全局負載均衡設備根據用戶IP地址,以及用戶請求的內容URL,選擇一台用戶所屬區域的區域負載均衡設備,告訴用戶向這台設備發起請求。
- 區域負載均衡設備會為用戶選擇一台合適的緩存伺服器提供服務,選擇的依據包括:根據用戶IP地址,判斷哪一台伺服器距用戶最近;根據用戶所請求的URL中攜帶的內容名稱,判斷哪一台伺服器上有用戶所需內容;查詢各個伺服器當前的負載情況,判斷哪一台伺服器尚有服務能力。基於以上這些條件的綜合分析之後,區域負載均衡設備會向全局負載均衡設備返回一台緩存伺服器的IP地址。
- 全局負載均衡設備把伺服器的IP地址返回給用戶。
- 用戶向緩存伺服器發起請求,緩存伺服器響應用戶請求,將用戶所需內容傳送到用戶終端。如果這台緩存伺服器上並沒有用戶想要的內容,而區域均衡設備依然將它分配給了用戶,那麼這台伺服器就要向它的上一級緩存伺服器請求內容,直至追溯到網站的源伺服器將內容拉到本地。
CDN關鍵組件
- LVS做四層均衡負載
DR模式
雙LVS做Active-Active互備負載均衡演算法採用wrr- Tengine做七層負載均衡
阿里基於Nginx開發的高性能HTTP伺服器,已經開源,詳細請了解:The Tengine Web Server
主動健康檢查SPDY v3支持- Swift做HTTP緩存
高性能Cache
磁碟(SSD/SATA)CDN基礎架構
CDN部署架構
------------------------------------華麗的分割線------------------------------------
二、為什麼要使用CDN?或者說CDN能解決什麼問題?
如果你在經營一家網站,那你應該知道幾點因素是你制勝的關鍵:
- 內容有吸引力
- 訪問速度快
- 支持頻繁的用戶互動
- 可以在各處瀏覽無障礙
另外,你的網站必須能在複雜的網路環境下運行,考慮到全球的用戶訪問體驗。你的網站也會隨著使用越來越多的對象(如圖片、幀、CSS及APIs)和形形色色的動作(分享、跟蹤)而系統逐漸龐大。所以,系統變慢帶來用戶的流失。
Google及其它網站的研究表明,一個網站每慢一秒鐘,就會丟失許多訪客,甚至這些訪客永遠不會再次光顧這些網站。可以想像,如果網站是你的盈利渠道或是品牌窗口,那麼網站速度慢將是一個致命的打擊。
這就是你使用CDN的第一個也是最重要的原因:**為了加速網站的訪問**
除此之外,CDN還有一些作用:
1. 為了實現跨運營商、跨地域的全網覆蓋
互聯不互通、區域ISP地域局限、出口帶寬受限制等種種因素都造成了網站的區域性無法訪問。CDN加速可以覆蓋全球的線路,通過和運營商合作,部署IDC資源,在全國骨幹節點商,合理部署CDN邊緣分發存儲節點,充分利用帶寬資源,平衡源站流量。阿里雲在國內有500+節點,海外300+節點,覆蓋主流國家和地區不是問題,可以確保CDN服務的穩定和快速。
2. 為了保障你的網站安全
CDN的負載均衡和分散式存儲技術,可以加強網站的可靠性,相當無無形中給你的網站添加了一把保護傘,應對絕大部分的互聯網攻擊事件。防攻擊系統也能避免網站遭到惡意攻擊。
3. 為了異地備援
當某個伺服器發生意外故障時,系統將會調用其他臨近的健康伺服器節點進行服務,進而提供接近100%的可靠性,這就讓你的網站可以做到永不宕機。
4. 為了節約成本投入
使用CDN加速可以實現網站的全國鋪設,你根據不用考慮購買伺服器與後續的託管運維,伺服器之間鏡像同步,也不用為了管理維護技術人員而煩惱,節省了人力、精力和財力。
5. 為了讓你更專註業務本身
CDN加速廠商一般都會提供一站式服務,業務不僅限於CDN,還有配套的雲存儲、大數據服務、視頻雲服務等,而且一般會提供7x24運維監控支持,保證網路隨時暢通,你可以放心使用。並且將更多的精力投入到發展自身的核心業務之上。
------------------------------------華麗的分割線------------------------------------
三、CDN適用哪些場景?
1、網站站點/應用加速
站點或者應用中大量靜態資源的加速分發,建議將站點內容進行動靜分離,動態文件可以結合雲伺服器ECS,靜態資源如各類型圖片、html、css、js文件等,建議結合 對象存儲OSS 存儲海量靜態資源,可以有效加速內容載入速度,輕鬆搞定網站圖片、短視頻等內容分發
- 架構示意圖
2、視音頻點播/大文件下載分發加速
支持各類文件的下載、分發,支持在線點播加速業務,如mp4、flv視頻文件或者平均單個文件大小在20M以上,主要的業務場景是視音頻點播、大文件下載(如安裝包下載)等,建議搭配對象存儲OSS使用,可提升回源速度,節約近2/3回源帶寬成本。
- 架構示意圖
3、視頻直播加速(內測中)
視頻流媒體直播服務,支持媒資存儲、切片轉碼、訪問鑒權、內容分發加速一體化解決方案。結合彈性伸縮服務,及時調整伺服器帶寬,應對突發訪問流量;結合媒體轉碼服務,享受高速穩定的並行轉碼,且任務規模無縫擴展。目前CDN直播加速已服務內部用戶測試並優化,即將上線,敬請期待
- 架構示意圖
4、移動應用加速
移動APP更新文件(apk文件)分發,移動APP內圖片、頁面、短視頻、UGC等內容的優化加速分發。提供httpDNS服務,避免DNS劫持並獲得實時精確的DNS解析結果,有效縮短用戶訪問時間,提升用戶體驗。
- 架構示意圖
------------------------------------華麗的分割線------------------------------------
四、關於CDN的一些常見名詞:
1、Origin Server源站
做 CDN 之前的客戶真正的伺服器。
2、User
訪問者,也就是要訪問網站的網民。
3、Last Mile
最後一公里,也就是網民到他所訪問到的 CDN 伺服器之間的路徑。4、域名
域名是Internet網路上的一個伺服器或一個網路系統的名字,全世界,沒有重複的域名。5、CNAME記錄
它是一個別名記錄( Canonical Name );當 DNS 系統在查詢 CNAME 左面的名稱的時候,都會轉向 CNAME 右面的名稱再進行查詢,一直追蹤到最後的 PTR 或 A 名稱,成功查詢後才會做出回應,否則失敗。
6、CNAME域名
CDN的域名加速需要用到CNAME記錄,在阿里雲控制台配置完成CDN加速後,您會得到一個加速後的域名,稱之為CNAME域名(該域名一定是*.*http://kunlun.com), 用戶需要將自己的域名作CNAME指向這個*.*http://kunlun.com的域名後,域名解析的工作就正式轉向阿里雲,該域名所有的請求都將轉向阿里雲CDN的節點。
7、DNS
DNS即Domain Name System,是域名解析服務的意思。它在互聯網的作用是:把域名轉換成為網路可以識別的ip地址。人們習慣記憶域名,但機器間互相只認IP地址,域名與IP地址之間是一一對應的,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析伺服器來完成,整個過程是自動進行的。
比如:上網時輸入的百度一下,你就知道會自動轉換成為220.181.112.143
8、邊緣節點
也稱CDN節點、Cache節點等;是相對於網路的複雜結構而提出的一個概念,指距離最終用戶接入具有較少的中間環節的網路節點,對最終接入用戶有較好的響應能力和連接速度。其作用是將訪問量較大的網頁內容和對象保存在伺服器前端的專用cache設備上,以此來提高網站訪問的速度和質量。
9、cache
cache高速緩衝存儲器一種特殊的存儲器子系統,其中複製了頻繁使用的數據以利於快速訪問。存儲器的高速緩衝存儲器存儲了頻繁訪問的RAM位置的內容及這些數據項的存儲地址。當處理器引用存儲器中的某地址時,高速緩衝存儲器便檢查是否存有該地址。如果存有該地址,則將數據返回處理器;如果沒有保存該地址,則進行常規的存儲器訪問。因為高速緩衝存儲器總是比主RAM存儲器速度快,所以當RAM的訪問速度低於微處理器的速度時,常使用高速緩衝存儲器。
CDN主要功能是在不同的地點緩存內容,通過負載均衡技術,將用戶的請求定向到最合適的緩存伺服器上去獲取內容,比如說,是北京的用戶,我們讓他訪問北京的節點,深圳的用戶,我們讓他訪問深圳的節點。通過就近訪問,加速用戶對網站的訪問。解決Internet網路擁堵狀況,提高用戶訪問網路的響應速度。
簡單介紹下CDN與傳統網站訪問的區別:傳統訪問訪問:使用了CDN的網站訪問:與傳統訪問方式不同,CDN網路則是在用戶和伺服器之間增加緩存層,將用戶的訪問請求引導到最優的緩存節點而不是伺服器源站點,從而加速訪問速度。
完整的CDN工作流程:
總結一下CDN的工作原理:通過權威DNS伺服器來實現最優節點的選擇,通過緩存來減少源站的壓力。
CDN應用場景:
靜態網頁
圖片小文件、博客
大文件下載
軟體下載、視頻點播或圖片存儲網站
動態加速
直播網站
應用加速
手機APP
最後看一下使用了CDN後的實際訪問效果
上圖數據來源於騰訊雲CDN,對比用戶的網站使用了CDN和沒有使用CDN的效果,幫助大家更形象的理解CDN解決什麼問題。
不用CDN時,訪問請求導源站用的時間是1.27S。
而使用了騰訊雲CDN後,會將這個訪問時間縮短為0.29s,訪問速度提高了5倍,而且可用性也可以得到很好的提升,原因是CDN的網路的鏈路質量都比較好。
關於CDN上面幾位也分享了很多,補充一些其他的看法吧:
引入一個詞:控制時延
無疑是現代信息科技的重要指標,CDN的意圖就是儘可能的減少資源在轉發、傳輸、鏈路抖動等情況下順利保障信息的連貫性
根據論文《WAITING TIMES IN QUALITY OF EXPERIENCE FOR WEB BASED SERVICES》中提出的:
其指出基於人腦在等待不同時長的信息時,產生的不同意識行為,進而對信息獲取產生的差別感官體驗。感知的持續時間 VS 客觀持續時間
根據研究發現:當人們獲得Voice這類聲音訊息時,好感度隨時間流逝下降的最為迅速,僅需16分鐘「評估意見等級」下降了70%,可見音像資源受緩衝時間的影響可見一斑
?0.1 s: 用戶幾乎感覺不到系統是否不連貫性。
?1.0 s: 用戶明顯注意到時延的發生,但是在該時間內思維依然是連貫的。?10 s: 超過該時間的時延會使用戶失去等待意願。控制時延無疑是現代信息科技的重要指標,CDN的意圖就是儘可能的減少資源在轉發、傳輸、鏈路抖動等情況下順利保障信息的連貫性。通俗點說就是在網速一定的前提下,CDN就像網路中快遞員小哥
- 而且CDN這個快遞員很是聰明TA不是在用蠻力瞎跑、亂撞
- TA還承建了很多家快遞點,就近快遞(緩存)
- TA善於優化快遞路徑(調度)還會對包裹進行更合理的重新打包(協議優化)
無論用戶在世界任何角落,只要連接網路,CDN服務就如同把源站搬到用戶面前一樣,整個世界,觸手可及!
便於理解,簡單闡述了CDN架構圖,其實就如同骨幹網路一樣,鏈路錯中複雜、設備轉發、流量調度、各種漫天飛的路由協議在骨幹網中默默的工作著。CDN中的流量調度可基於POP節點監控情況、基於POP節點訪問次數、基於會話能力、基於物理伺服器綁定、基於測量的用戶訪問往返時間、基於連接數、基於流量。不僅如此,根據計費合理性,在保證質量的情況下,平衡節點流量輸出,減少費用開支。但,上述種種只是CDN在網路中發揮的功能和扮演的角色的冰山一角!推薦閱讀:CDN知識詳解
推薦閱讀:直播、短視頻平台如何選擇合適的CDN?
「更懂您和CDN | 視界雲」
webp圖片壓縮效果演示_騰訊視頻v.qq.com視頻
魔門雲(智能cdn雲加速)WebP自動轉換技術——網站加速演示
1、CDN是什麼?
CDN的全稱是Content Delivery Network,即內容分發網路。其目的是使用戶可就近取得所需內容,解決 Internet網路擁擠的狀況,提高用戶訪問網站的響應速度。CDN網路可以將伺服器的內容緩存到分布全球的CDN節點,根據用戶的訪問IP,就近連接CDN,提高網站響應速度。
2、使用CDN有什麼優勢?
- 減輕源站壓力
- 提高訪問速度
- 提升用戶體驗,提高收益
3、魔門雲介紹
魔門雲CacheMoment-大數據驅動的智能雲加速、全球CDN解決方案
魔門雲是大數據驅動的智能雲加速、全球融合CDN雲平台,為用戶提供頁面性能優化、CDN、網站加速、APP加速、AB測試等服務。
魔門雲融合全球1000+CDN節點,並且擁有WebP自動轉換、域名分片、pagerunner、響應式緩存等二十多項黑科技。魔門雲支持免備案、免費支持HTTPS等服務。
目前提供免費體驗版,歡迎體驗。
魔門雲CacheMoment-大數據驅動的智能雲加速、全球CDN解決方案
假如沒有CDN的網路世界
比如:無法觀看流暢的4K大片
尷尬的卡在了關鍵時刻...
CDN究竟是什麼鬼?
Content Delivery Network,內容分發網路。
我們知道麥當勞的總部在美國,可是公司附近也有一家麥當勞,並且漢堡包是一模一樣的,這就是CDN。麥當勞部署了很多個CDN在世界各地提供服務,用戶都是找到最近的店,這個計算過程就是「就近接入」。
最近麥當勞研發了一個新型漢堡包,叫「驢肉漢堡」,這個時候集團要把這個「內容」向全世界分發,讓每一個分店,都能開始賣「驢肉漢堡」,好讓新老產品能夠並駕齊驅,這個就是內容分發網路的「分發」。這個時候你要吃「驢肉漢堡」的時候,直接去你家附近就可以了。
其實不難理解,CDN其實是一種資源的分散式存放和備份的方法。
CDN不是必須的,但有CDN會讓你的網站載入更快;只連內網,無法使用CDN,當然如果內網有緩存內容,可以正常使用;
- CDN是什麼
CDN的全稱叫 Content Delivery Network、內容分發網路。
早在兩千年左右,萬維網創始人 Tim Berners Lee 發現互聯網變得擁堵和繁忙,於是思索是否可以通過演算法加速,在和麻省理工的一位數學教授溝通後,教授的一位研究生 Danny Lewin 寫出了此演算法,並成立了 Akamai公司,第一個CDN就此誕生。CDN最初設計的核心理念就是將內容緩存在終端用戶附近,使用戶能夠就近訪問到資源,例如採用緩存的機制。
訪問速度是影響用戶體驗的一個重要因素,誰都不想看著載入界面的圓圈轉啊轉就是不出來,我們知道一來網路傳輸是需要時間的,二來伺服器也是有物理極限的。所以如果想提高訪問速度,一是可以縮短網路傳輸時間,讓伺服器離用戶更近一點兒,二是可以多用幾台伺服器。如果能做到一個廣東的用戶訪問的是廣東的,北京的訪問北京的,而不用互聯網天南海北的跑來跑去是最好的,CDN就是干這個事兒的。
舉個通俗的例子,我們知道在某東上購物一般會比較快,是因為他們在全國各地都設了倉庫,當用戶下單時,就近選擇倉庫調貨,因此會比較快。某東物流是商品分發網路,而CDN是互聯網上的內容分發網路,分發內容不同、機制不同,但核心思想都是 離用戶更近 ,分發速度更快。
2. CDN具體是怎麼幹活的
關於傳統訪問和利用CDN的情況下的訪問有何不同,可以參考 @ 代希剛 的回答中的幾張圖這裡補充一下源站和回源
源站是真實提供內容的站點(其他的伺服器上存的是緩存,傳統的訪問就只有這一個伺服器)。
使用CDN的資源訪問,會先就近問問自己附近的伺服器有沒有,有的話就直接返回,沒有的話,就繼續訪問CDN的中心伺服器,有就返回,沒有的話,中心伺服器會繼續訪問源站獲得資源,並返回給請求方,這個過程叫做回源。
另外給出一個參考案例,說的很清晰 面向前端的CDN原理介紹 · Issue #1 · renaesop/blog
3. 題主的問題
返回到題主的問題,題主使用的Boostrap CDN, 不是必須的,畢竟我們也可以用傳統的方法,把boostrap那一套東西上傳到伺服器也完全沒問題,但使用CDN會讓網站載入更快是真的。關於內網的事兒,如果你弄懂原理,自然就明白了,CDN是通過互聯網分發的,如果只有內網是無法從互聯網上獲得資源的,當然如果你的內網伺服器本來就有緩存,那也不會有問題。
關於CDN,關於 分散式存儲、負載均衡、網路請求的重定向和內容管理等方面有很多內容和知識,有機會以後寫文章再詳述。
這個問題還是取決於你的網路部署架構和面向的用戶人群,最重要的是要理解CDN的作用。
考慮沒有CDN的情況,你發布了一些靜態資源服務,然後來自世界各地的用戶開始請求你的資源。
假設你的靜態資源服務接入的是浙江移動的ISP,而世界各地的用戶接入的ISP是各種各樣的。同樣假設北京到杭州之間的通信延時是3ms,對於一次web請求就至少是6ms的延時(請求+響應),因此ISP之間的通信互聯成為影響靜態資源載入速度的一個重要瓶頸!
具體看一下沒有CDN的web請求過程,主要分為兩步:1. 域名伺服器解析IP地址 ;2. 和目標機器建立連接請求資源。
在域名解析的過程中,由於域名和IP映射存儲在server-isp-DNS伺服器(A記錄解析),發起請求之後,需要通過根域名伺服器依次迭代查詢。最後返回源站的IP地址給客戶端,開始建立連接請求資源。
而對於使用CDN服務的架構,通常是下面這樣的:
server-isp-DNS伺服器不是直接把域名做A記錄映射到源站,而是CNAME記錄到調度中心,調度中心根據用戶請求的來源,選擇一個最近的CDN節點的IP地址(通常是虛擬IP地址)。
用戶和CDN節點IP地址建立連接開始請求資源,CDN節點內部進行負載均衡後,負責響應的機器查詢是否有該資源(第一次請求的延時和沒有使用CDN服務是一樣的),如果沒有則回源站進行請求(同時進行緩存),然後響應請求。
看完原理和架構之後,再來看你的問題,當然就是看看web請求是否存在跨ISP通信的情況了。
當然,CDN服務除了可以加速之外,還帶了高效的負載均衡調度機制,可以大大減少源站伺服器的負載。
傳統網站訪問類似於淘寶購物,使用了cdn的網站訪問類似於京東購物。
例如:我們要買一個電子產品,在淘寶(這裡指第三方賣家)買的話,發貨地點一般就一個,假如發貨地點是深圳,我們在上海,倆天左右可以送到,要是我們在烏魯木齊,至少要一周。而在京東上買自營電子產品的話,它會根據我們的收貨地點,在全國範圍內找離我們最近、送達最快的倉庫,不管我們在上海,還是烏魯木齊,我們的收貨時間會大大減少。京東建立的倉儲系統,類似於cdn。
要說清楚這個問題,我們需要從頭說起:
基礎網路的發展路徑
80後、90後都是見證互聯網崛起的一代,互聯網的發展史,本質上就是網路速度的發展史。剛開始的時候,網民用電話線撥號上網,下行速度只有不到幾十K,打開一個複雜的網頁要十幾秒到幾十秒;後來寬頻興起,網民使用了現在常見的網線(其實和電話線一樣都是銅芯);再到後來光纖到戶了,不再使用銅線,傳輸介質都變成了光纖,上網速度更快了。
上面說的是家裡的固網,下面再來聊聊手機移動網路。移動網路包含語音和數據兩塊,語音就是我們常用的打電話業務,數據就是我們訪問互聯網的數據傳輸。要分清楚這兩個業務,最簡單的秘訣就是看手機頂端顯示的信號圖標。(這裡簡單擴展一個基礎知識:我們常說的幾G就是代表第幾代移動通信技術Generation。G代表GPRS, 2.5G也就是第二代移動通訊網路的延伸,速率能夠到達115kbpsE是EDGE,經常被叫2.75G網路,速率有384kbps。)
大概六七年前開始,網路用戶開始使用3G,就是第三代移動通訊技術,速率可達2Mbps,還有一些時候會顯示H或者H+,可以當做是3.5G4G,後來就是目前比較流行的4G,速率在100Mbps以上。
隨著傳輸技術的演進,互聯網上的應用也發生了很大變化。用一些具有代表性的例子來說,早年間大家使用的應用主要是通訊軟體例如QQ、發郵件、訪問網頁;到後來網路可以便捷快速的傳輸較大的文件,就有了在線聽音樂千千靜聽、酷狗音樂;然後普及了在線視頻優酷、土豆、pps;到現在我們可以看到,網路上已經有了愛奇藝這樣全高清的在線視頻。
隨著直播,尤其是移動直播在近兩年突然爆發,給基礎網路提出了最嚴苛的要求。一方面,以往用戶的上網行為對帶寬的要求是極不對等的,用戶對上行帶寬的需求普遍是只要能發送出請求消息就行,日常用網主要靠下行帶寬下載大量數據。但現在有了直播,用戶可能隨時隨地就會開啟直播,而當用戶開啟直播以後,應用需要把直播內容上傳到服務端,這個過程就對上行帶寬提出了新的要求,只要直播上傳端出現卡頓,所有看直播的觀眾都會受到影響。另一方面,直播從內容產生到上傳到分發最後用戶播放整個鏈路完全是實時的,每個環節都容不得細微的網路抖動和異常,尤其很多高清的直播對上下行帶寬要求都非常高。怎麼解決這個問題?
通過CDN解決內容傳輸問題
下面兩張分別是我在電腦和手機測速的截圖,速率都達到10Mbps或100Mbps,那為什麼往往上傳2M以上的直播或觀看3M以上的直播會經常很卡呢?
這是因為傳輸技術、移動通訊技術都已經能夠支持這麼大的傳輸速率,但是接收的服務端卻沒有那麼強的接收能力,以及各種各樣小運營商之間的互聯很差等導致的。舉個例子,如果順豐快遞在一個小區每家每戶都安排一個快遞員24小時等待取件,那是不是該小區所有人都能馬上寄出東西了呢?不是,因為樓下的順豐倉庫就只有1平米,大家都在寄東西他們倉庫滿了不能再受理了,即使快遞員收件很快,物流點也處理不過來。
這就需要通過CDN來解決問題。
當發生物流點要處理大量快件的情況時,我們就需要在每個小區都建很多個、空間很大的物流點。回到CDN上來說,就需要在每個網路內都部署CDN伺服器節點,而且需要部署非常多個。當然,這樣做導致的問題就是CDN的成本會變得非常高,高到直播平台根本負擔不了的地步。
還有一種解決思路是採用共享經濟的方式,低成本地在全網部署「無限」多的節點,解決數據傳輸的問題,這就是星域CDN正在做的事情。具體怎麼實現?首先通過一個智能硬體——迅雷賺錢寶,將家庭用戶空閑的家庭帶寬資源籌集起來,一方面可以免去節點建設成本,一方面也可以使節點離用戶更近。用物流來比喻,就是我們可以將小區里閑置的空房、空地、空路線利用起來,免去重新佔地建房的成本。
這可以說是非常了不起的技術突破。因為在CDN產生的過去十幾年中,CDN在技術方面發展得非常緩慢。雖然今天迸發出這麼多CDN廠商或雲直播廠商,但你可以去翻看一下歷史資料,整個架構體系同最開始CDN這概念提出時候如出一轍。
至於星域CDN的技術原理,具體的介紹可以在官網找到(重新定義CDN-星域CDN官網),我僅說一點兒我自己的看法:
首先是上面提到的,無限節點技術。將賺錢寶作為節點部署滲透到千家萬戶,理想的狀態可能是在任意位置,網路在請求數據的時候在你附近1km內總能找到賺錢寶來服務,極大的縮短了用戶到CDN訪問的鏈路。加上多個賺錢寶之間,賺錢寶與邊緣節點之間的冗餘分布,實現數據傳輸的穩定性。
其次是星域調度技術,和無限節點配合使用威力驚人。星域調度是依託迅雷10年引擎技術演算法的積累,能夠將無限節點整合併精準調度。以往CDN都是完全採用樹形拓撲結構,星域調度採用網狀拓撲結構,可以避免單點故障導致整個鏈路中斷,此外我們在每個節點以及賺錢寶上部署探針服務,能夠實時獲取到全網最真實的網路狀況數據。
最後是弱網加速技術。CDN講求的是整體服務,越是弱網環境越需要重點關注,星域通過在TCP協議跟內核方面的優化演算法,實現在傳輸層解決弱網問題,提高整體服務質量,配合星域的推流sdk和播放sdk效果會更好。
作為一家創業公司,客戶口碑是企業立足之本。前不久有包括熊貓、B站、觸手在內九家直播企業的負責人通過視頻講述了他們對星域CDN的評價,裡面提到了很多直播技術細節,隨意截幾張圖,你們感受一下:
歡迎業內同行來溝通交流,在技術上共同成長;歡迎直播企業來測試試用,我們會用實力證明一切。
利益相關:網心科技程序員一枚
如需轉載請先與本人聯繫,謝謝!
Bootstrap bootstrap | Bootstrap中文網開源項目免費 CDN 服務All Bootstrap中文網開源項目免費 CDN 服務
內網不需要關心CDN。CDN相當於在現有互聯網基礎上扮演著「虛擬互聯網」的角色。為用戶保存自己希望能夠快速訪問內容的副本,如視頻、音樂、網站主頁其他內容等等,當用戶去訪問這些內容時,CDN平台將返回離用戶距離最近伺服器上所託管的副本內容。
半年後的備註:
其實很多人應該沒注意到,我一開始也認真去研究這個問題,其實我在這篇回答中是有不小心混淆掉CDN與對象存儲(各家服務商上有不同的稱呼,如OSS,COS等名字)這兩個概念,而我在這篇回答中,是將CDN解釋為廣義上的內容分發,而不僅僅是Cache與Delivery即緩存與分發。狹義上的CDN更像是一種傳統存儲的分散式緩存,而OSS是一種以對象存儲方式的在線存儲。
我個人而言,CDN更注重於訪問響應速度,而OSS則注重於下載的速度而不像CDN那樣廣泛分布。
=====================================================================
第一次看到自己會答的問題。雞凍?(ˊ?ˋ*)
CDN,雲分發網路的應用至今普遍大概有以下這幾個應用:公開前端常用庫,靜態文件加速,全站加速,大文件下載分發,DDCC防禦,以及新興的直播/視頻接入。
我的人感覺,七牛,又拍等這些CDN提供商的服務對於個人開發者,博客等沒有太大經濟,技術實力的站點而言也算是非常有用的。
為什麼呢,我作為一個博主說下我的看法。
1.網路,響應速度,運維成本,技術要求
伺服器網路可能有時候抽風,某條線路不能用,可能就要繞很遠的路,多訪問節點就能夠避免這個問題,能夠自動選著用戶的最佳節點,有效提高訪問響應速度,能夠留下非常多的用戶(想下你打開個網頁都要幾分鐘,你還願意繼續看?(?_?))。
但是如果自己要建立多個訪問節點,而且導致運維成本飆升(伺服器價格不知道高到哪裡去了,過幾天你就倒閉了),而且還有技術上的,還有就是你買回來的伺服器不一定線路比較好的,可能會幾個節點性能參差不齊。再者就是一個人運維這麼多節點好累的好伐。
2.DDCC防禦
DDCC在當今作為一個暴力的,惡性的攻擊,我們現階段能做的也就拼下帶寬跟伺服器性能,但是作為一個普通開發者,博主,我們的經濟實力一般不能說租到大防禦的伺服器(更何況是多個節點)。如果只有一台源伺服器,被打掉就沒有了,用戶無法訪問就會造成損失。
而cdn的優勢就出來了,CDN提供商往往會有比較新的DDCC防禦技術以及線路切換機制。雲均衡負載加上多伺服器節點使得DDCC流量能夠被均衡分流而能夠有效抵擋DDCC攻擊,這是個人(一個源伺服器)無法比擬的。
3.大文件雲分發
有的時候,我們可能會放一些文件在自己博客/網站上供大家下載,但是如果下載用戶多或者文件過大就會導致佔用伺服器帶寬,伺服器io,伺服器硬碟,伺服器流量。現在在售的大部分vps的帶寬,硬碟和流量費用都比較貴,尚未到達隨便浪無所謂的程度。這時候如果你是一台伺服器(上下行100mbps[ps:這已經算是大帶寬了],硬碟讀寫200mbps),如果有100個用戶下載一個伺服器上1Gb的文件,首先是伺服器上佔用了1Gb的空間,其次假設100個用戶都是10mbs下載速度,不計算丟包,100個用戶總計佔用伺服器1000mbps帶寬,所以這時候有的用戶就是無法下載或者速度很慢,這時候也一併拉著你網站的訪問速度。再其次,如果這個月有1000個用戶下載了你這個文件,那麼這個月的流量已經高達1Tb了,除非你的伺服器無限量,不然早就被停機了。
這個時候,你想說,我有錢,弄幾台下載伺服器不就行了嘛,還是那個問題,運維成本,技術支持。如果你是博客等個人網站,一兩個月傳幾個幾十m的文件到幾個伺服器倒沒什麼問題,但是想想要是下載站,資源分享站呢?讓用戶自己一個個手動傳?想必不可能吧。
這時候,大文件雲分發也就又顯現出優勢了,多節點,大帶寬,自動分配最佳資源組,自動雲分發,這些都是CDN服務的優勢。而且,cdn流量相比伺服器的流量更加便宜,速度更加好(注:如果雲分發的文件被其他網站盜鏈/下載量很大時,將有可能帶來高昂的流量費用,您需要配置好您的防盜鏈策略等,此處就不展開了)
4.公共前端常用庫
這個就不必多說了,作為一個開發者,有的時候可能會懶得去把一些bootstrap,jQuery等一些常用js,css文件傳到伺服器上,相反,我們大多數更偏愛於直接調用,省下翻文件,上傳等的功夫,而且選擇版本方便,提高響應速度,也能避免需要載入牆外資源導致拖慢網站的問題(例如之前的谷歌字體[聽說現在好了?沒關注])。這裡就不得不提下良心好用的BootCDN了。
5.直播/視頻播放加速
七牛,又拍早已相繼提供直播,視頻加速服務,那麼這裡也就不得不提下了。
大體如第3條(大文件雲分發)類似的流量,帶寬,運維成本,線路的問題。
(直播/視頻要求與大文件下載相比更苛刻,視頻卡,直播卡誰想看)
6.靜態文件加速(對象存儲 - OSS)
眾所周知,我們在訪問網站時,圖片等的載入是網頁的瓶頸,這些文件比網頁文件來大的多,直接拖慢網頁響應速度。這個時候,除了lazyload,另外就是cdn加速了。
一般來說,一些剛起步的新人站長/新的域名沒來得及(or懶得)備案,這就使得無法接入國內CDN服務(注:未在中國備案域名無法接入國內伺服器),那麼一種不同於傳統的cdn加速的對象存儲加速就這樣誕生。
對象存儲通過鏡像您的站點的文件,然後通過網站插件/js代碼將網頁中的圖片等靜態資源用加速後的文件鏈接替換掉,既不影響訪問,也提高響應速度。
這就是我個人認為雲分發網路相比傳統存儲的優勢,當然,大牛們可以在評論里指出錯誤/不足。第一次回答,*?′ω`?*大牛不要把我批判一番
最後
啊啊4點半了,手機擼了差不多一個小時了,睡不著啊。
無聊可以來看看我博客hhh
http://blog.sakuralove.cn
CDN全稱content delivery network. 解決的,就是哪個"遠水不解近渴,遠親不如近鄰"的問題.明白了吧?
有時候你需要的一些資源, 當它具有以下特點的時候,就可以選擇採取CDN:
1. 需要提供給不同的區域(一個國家的各個省會,乃至全球的各個國家),而你又不想在各個國家各個地方構建一個新的stack(server,前後端一套系統)
2. 你所提供的內容(圖片,文本...etc)在短期內不會過期,也就比如說,圖片A.JPG在未來一個月內, 內容不變.實際上,很多情況下,所提供的內容會永久不變.
3. 你還是希望提供內容的速度,快!
滿足這樣的三個基本條件, 就可以考慮CDN啦.它的最基本用法就是,比如:
我人在北京, 但是我想要立刻遲到上海的小籠包. 那起碼得郵寄幾個小時吧? 那多不好!
那麼好了, 有了CDN, 小籠包在一個月前就在上海駐北京小籠包CDN點複製好了,那麼各路想立刻吃到上海小籠包的顧客,就可以立刻訪問,立刻享用!
我用過Amazon的CDN,叫做Cloud Front,還是蠻好使的.
CDN是:事先把內容存到到不同地域的不同線路伺服器上,根據用戶發起訪問請求分布,CDN在離用戶最近的地域相同的線路伺服器上獲取內容,反饋給用戶。
你是內網,不是必須。可以不使用,谷歌被牆,可以先度娘下基本的,再提問。CDN(Content Delivery Network) 內容 分發 網路
內容:網站源站的靜態內容,比如頁面的js/css,視頻的mp4/flv,下載的軟體安裝包等文件
分發:把源站的內容緩存到不同地區的各個節點上
網路:用戶訪問網站是先訪問附近的節點緩存,命中緩存就可以直接獲得內容,達到網路加速的效果。
當然CDN也有動態加速 視頻直播等應用。
很明顯,CDN的優勢就是提高網站的用戶訪問速度,減輕源站壓力,保護源站安全等。
------------------------------
簡介
阿里雲 CDN(內容分發網路)全稱是 Alibaba Cloud Content Delivery Network,建立並覆蓋在承載網之上、由分布在不同區域的邊緣節點伺服器群組成的分散式網路,替代傳統以WEB Server為中心的數據傳輸模式。
將源內容發布到邊緣節點,配合精準的調度系統;將用戶的請求分配至最適合他的節點,使用戶可以以最快的速度取得他所需的內容,有效解決Internet網路擁塞狀況,提高用戶訪問的響應速度。
使用CDN後的http請求處理流程如下圖:
功能介紹
節點緩存
- 智能對象熱度演算法,分層緩存HOT資源,實現資源精準加速
- 高性能緩存Cache系統設計,均衡使用CPU多核處理能力,高效合理使用和控制內存,最大化SSD IOPS和吞吐
- 各節點具備高速讀寫固態硬碟SSD存儲,配合SSD加速能力,大幅減少用戶訪問等待時間,提高可用性
- 智能壓縮,有效減少用戶傳輸內容大小,加速分發效果
- 頁面優化,去除頁面的空格、換行、TAB、注釋等冗餘內容,減少頁面的大小
- 組合多個JavaScript/CSS文件成為一個請求,從而減少請求數目
精準調度
不論您的站點屬於門戶資訊類網站、多媒體視音頻類網站、遊戲類網站或是移動應用類APP等等,CDN會智能分配調度域提供針對需求的業務支持,全面為您的站點提速
- 自主研發的調度系統,單機支持百萬級別域名調度
- 更加優異的可控性、協議擴展性,進一步降低成本
- 支持多級的調度策略,節點故障不會造成用戶不可用
- 多系統聯動,與安全防禦系統、刷新系統、內容管理系統等協調工作
- 數據化實時調度,支持節點級別流量預測,提升調度質量和準確性
多場景的業務支持,多組件配合服務
- 視頻流媒體直播服務,媒資存儲、切片轉碼、訪問鑒權、內容分發加速一體化解決方案(即將上線)
- 視音頻漸進式點播服務,低緩衝時間,高流暢度播放體驗,支持 mp4、flv 視頻格式
- 支持資源鏈接鑒權,可自定義鑒權KEY,保障您的媒體資源安全,免去盜鏈擔憂
- 自由集成阿里雲多種雲服務,系統無縫配合提升雲端資源訪問下載速度
- 天然無縫配合對象存儲OSS使用,提高網站訪問速度,有效降低OSS的外網流量費用
- 結合雲伺服器ECS使用,提高網站可用性,保護伺服器源站信息,降低帶寬使用成本
- 也可使用負載均衡做為源站地址回源,降低回源帶寬壓力
- 同時也支持非阿里雲源站,對接無門檻,經過資源審核即可快速部署加速服務
自助式管理
- 自助式控制台,自定義配置分鐘級全節點智能部署
- 簡單操作即可快速開通CDN服務。您可以通過控制台自助化配置域名的添、刪、改、查,設置加速節點緩存策略、防盜鏈、http頭信息等,也可根據需求選擇性開啟多種加速優化功能,了解更多
- 開放原子性可擴展的API,通過CDN API實現對加速域名、分發資源和監控數據進行靈活部署、快速操作、精確使用、及時監控。也可配合其他阿里云云產品API,實現多平台自定義portal了解更多
實時監控
- 全景信息監控,多維度護航資源分發
- 全面的網路監控,豐富的數據分析,方便的資源報表下載,提供包含帶寬流量、訪問質量、訪客數據、熱門分析、安全防護等全景監控信息
隨著互聯網的發展,用戶在使用網路時對網站的瀏覽速度和效果愈加重視,但由於網民數量激增,網路訪問路徑過長,從而使用戶的訪問質量受到嚴重影響。特別是當用戶與網站之間的鏈路被突發的大流量數據擁塞時,對於異地互聯網用戶急速增加的地區來說,訪問質量不良更是一個急待解決的問題。如何才能讓各地的用戶都能夠進行高質量的訪問,並盡量減少由此而產生的費用和網站管理壓力呢?內容發布網路(Content Delivery Network,CDN)即內容分發網路,誕生了。
其目的是通過在現有的Internet中增加一層新的網路架構,將網站的內容發布到最接近用戶的網路「邊緣」,使用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。CDN可以明顯提高Internet網路中信息流動的效率。從技術上全面解決由於網路帶寬小、用戶訪問量大、網點分布不均等問題,提高用戶訪問網站的響應速度。 當用戶訪問已經加入CDN服務的網站時,首先通過DNS重定向技術確定最接近用戶的最佳CDN節點,同時將用戶的請求指向該節點。當用戶的請求到達指定節點時,CDN的伺服器(節點上的高速緩存)負責將用戶請求的內容提供給用戶。具體流程為: 用戶在自己的瀏覽器中輸入要訪問的網站的域名,瀏覽器向本地DNS請求對該域名的解析,本地DNS將請求發到網站的主DNS,主DNS根據一系列的策略確定當時最適當的CDN節點,並將解析的結果(IP地址)發給用戶,用戶向給定的CDN節點請求相——應網站的內容。
上海雲盾YUNDUN(https://www.yundun.com)的雲加速是一款專業面向WEB應用的高性能加速產品。擁有遍布全球的加速節點、靈活的緩存策略和精細的性能優化能力,配合多種安全風險識別和防護手段,為客戶Web應用提供快速、穩定的訪問體驗。
產品優勢:
1.安全:輕量級DDoS清洗、防CC服務,雲IDS有效識別黑客攻擊,提供防盜鏈、區域屏蔽、訪問控制 、錯誤頁面自定義等功能;
2.快速:提供遍布全球的CDN節點、保證最佳訪問鏈路、提供HTTP2、SSL加速、頁面壓縮、圖片優化、動靜分離等精細化加速服務,確保網站訪問更快、更穩定;
3.永遠在線:獨特的永遠在線功能,當源站宕機後,智能聯動替身鏡像,實現網站永遠在線;
4.HTTP:支持全網SSL安全加速,提升加密數據傳輸速度;
5.SEO優化:提供搜索引擎線路加速,有效提高搜索引擎的檢索效率,提高搜索引擎排名。
6.大數據:提供豐富的數據統計分析,全方位掌握網站訪問情況及安全狀況。
https://www.yundun.com/cloud-speed
產品架構:
2017 年 11 月 9 日,CC 視頻獲 2.08 億元 C 輪融資。日前,作為 EGO 北京分會會員,CC 視頻 CTO 栗偉作為 EGO 線上分享第三季嘉賓,與大家交流了 CDN 系統架構及 CC 視頻的應用實踐。
技術出身的栗偉曾在中科院計算機技術研究所和藍訊公司從事多年網路存儲和 CDN 技術等工作,2014 年加入 CC 視頻,在 CDN 和視頻編解碼技術方向頗有著豐富的經驗。
作為一站式場景化視頻解決方案服務商,CC 視頻經歷 12 年企業級視頻雲服務的探索,已經擁有了視頻雲點播、雲直播、雲加速、雲互動的完整產品線,為整個視頻領域提供全方位服務。
在線教育領域的大型企業大多都是 CC 視頻的重度用戶。憑藉領先的雲計算技術和專業的視頻處理經驗,CC 視頻已經成為包括新東方、好未來華圖、新東方、達內、尚德、清華大學、萬國、學堂在線、寶寶樹、好醫生、海馬玩、螞蜂窩、SMG 集團、36 氪、財新網、鳳凰網、上海通用、唱吧、廣聯達等 18000+ 知名企事業單位的首選合作品牌。
作為 CDN 架構的專家,栗偉首先向大家介紹了基於 DNS 解析的 CDN 工作原理。通過利用 DNS 的 CNAME 特性和 CDN 的回源原理,CDN 廠商實現了用戶流量的調度,同時也解決了內容緩存和源站保護的問題。
原文鏈接:CC 視頻 CTO 栗偉: CDN 技術及 CC 視頻的應用實踐
白話,你訪問淘寶,為了不讓你感覺網站太慢了(當然原因有很多),於是淘寶在離你近的地方,放了一台緩存著淘寶數據的伺服器,你的訪問請求被直接轉發到這台伺服器上由它直接返回你想看的內容,這樣就不用問淘寶主伺服器要數據,好處就是你不會因為你是聯通寬頻,淘寶跟聯通不對付,你訪問速度慢,影響你體驗,這樣,淘寶主伺服器也不用忙著響應你的請求,皆大歡喜。
簡單的說是把你的網站不經常更新的資源在用戶的最近的物理網路結點上做一個備份。
用戶訪問的時候不需要千里迢迢從北京跑到上海的伺服器上拿文件。只要在北京的伺服器上拿文件就可以了。如果沒有CDN.你的網路服務在物理位置較遠的地方訪問會比較慢。推薦閱讀: