隨著網際網路的發展,使用者在使用網路時對**的瀏覽速度和效果愈加重視,但由於網民數量激增,網路訪問路徑過長,從而使使用者的訪問質量受到嚴重影響。特別是當使用者與**之間的鏈路被突發的大流量資料擁塞時,對於異地網際網路使用者急速增加的地區來說,訪問質量不良更是乙個急待解決的問題。如何才能讓各地的使用者都能夠進行高質量的訪問,並儘量減少由此而產生的費用和**管理壓力呢?內容發布網路(content delivery network,cdn)誕生了。
一、cdn是什麼?
---- cdn的全稱是content delivery network,即內容分發網路。其目的是通過在現有的internet中增加一層新的網路架構,將**的內容發布到最接近使用者的網路「邊緣」,使使用者可以就近取得所需的內容,提高使用者訪問**的響應速度。cdn有別於映象,因為它比映象更智慧型,或者可以做這樣乙個比喻:cdn=更智慧型的映象+快取+流量導流。因而,cdn可以明顯提高internet網路中資訊流動的效率。從技術上全面解決由於網路頻寬小、使用者訪問量大、網點分布不均等問題,提高使用者訪問**的響應速度。
---- 為更好地理解cdn,讓我們看一下cdn的工作流程。當使用者訪問已經加入cdn服務的**時,首先通過dns重定向技術確定最接近使用者的最佳cdn節點,同時將使用者的請求指向該節點。當使用者的請求到達指定節點時,cdn的伺服器(節點上的快取記憶體)負責將使用者請求的內容提供給使用者。具體流程為: 使用者在自己的瀏覽器中輸入要訪問的**的網域名稱,瀏覽器向本地dns請求對該網域名稱的解析,本地dns將請求發到**的主dns,主dns根據一系列的策略確定當時最適當的cdn節點,並將解析的結果(ip位址)發給使用者,使用者向給定的cdn節點請求相應**的內容。
二、cdn的相關技術
---- cdn的實現需要依賴多種網路技術的支援,其中負載均衡技術、動態內容分發與複製技術、快取技術是比較主要的幾個,下面讓我們簡單看一下這幾種技術。
----負載均衡技術
---- 負載均衡技術不僅僅應用於cdn中,在網路的很多領域都得到了廣泛的應用,如伺服器的負載均衡、網路流量的負載均衡。顧名思義,網路中的負載均衡就是將網路的流量盡可能均勻分配到幾個能完成相同任務的伺服器或網路節點上,由此來避免部分網路節點過載。這樣既可以提高網路流量,又提高了網路的整體效能。在cdn中,負載均衡又分為伺服器負載均衡和伺服器整體負載均衡(也有的稱為伺服器全域性負載均衡)。伺服器負載均衡是指能夠在效能不同的伺服器之間進行任務分配,既能保證效能差的伺服器不成為系統的瓶頸,又能保證效能高的伺服器的資源得到充分利用。而伺服器整體負載均衡允許web網路託管商、門戶站點和企業根據地理位置分配內容和服務。通過使用多站點內容和服務來提高容錯性和可用性,防止因本地網或區域網路中斷、斷電或自然災害而導致的故障。在cdn的方案中伺服器整體負載均衡將發揮重要作用,其效能高低將直接影響整個cdn的效能。
----動態內容分發與複製技術
---- 大家都知道,**訪問響應速度取決於許多因素,如網路的頻寬是否有瓶頸、傳輸途中的路由是否有阻塞和延遲、**伺服器的處理能力及訪問距離等。多數情況下,**響應速度和訪問者與**伺服器之間的距離有密切的關係。如果訪問者和**之間的距離過遠的話,它們之間的通訊一樣需要經過重重的路由**和處理,網路延誤不可避免。乙個有效的方法就是利用內容分發與複製技術,將佔**主體的大部分靜態網頁、影象和流**資料分發複製到各地的加速節點上。所以動態內容分發與複製技術也是cdn所需的乙個主要技術。
----快取技術
---- 快取技術已經不是一種新鮮技術。web快取服務通過幾種方式來改善使用者的響應時間,如**快取服務、透明**快取服務、使用重定向服務的透明**快取服務等。通過web快取服務,使用者訪問網頁時可以將廣域網的流量降至最低。對於公司內聯網使用者來說,這意味著將內容在本地快取,而無須通過專用的廣域網來檢索網頁。對於internet使用者來說,這意味著將內容儲存在他們的isp的快取器中,而無須通過internet來檢索網頁。這樣無疑會提高使用者的訪問速度。cdn的核心作用正是提高網路的訪問速度,所以,快取技術將是cdn所採用的又乙個主要技術。
三、誰需要cdn?
四、cdn的不足
---- 任何乙個新事物,在給現有模式帶來改進的同時,也必然存在一定的侷限,cdn也是這樣。據互聯通網路****的技術經理郭廣中講,實時性不太好是cdn的致命缺陷。隨著對cdn需求的逐漸公升溫,這一缺陷將得到改進,使來自於遠端伺服器的網路內容網頁與複本伺服器或快取器中的網頁保持同步。解決方法是在網路內容發生變化時將新的網路內容從伺服器端直接傳送到快取器,或者當對網路內容的訪問增加時將資料來源伺服器的網路內容盡可能實時地複製到快取伺服器。
五、cdn產品
---- 目前,推出比較成熟的cdn產品的廠家有cisco、f5和互聯通公司等,前兩者的cdn是以硬體系統為主,而後者的cdn是以軟體為主的通用平台,很好地結合了線路和服務優勢。下面簡單分析一下互聯通的cdn——smart cdn。
---- 互聯通採用整體負載均衡(gslb)、快取技術(cache)及映象技術(mirror)相結合的方法,為客戶提供異地網路加速服務。具體方案是在**主站點以外的使用者集中城市、地區使用互聯通的網路加速服務,互聯通智慧型gslb系統通過互聯通專網,引導**使用者訪問「最佳」cache/mirror伺服器,從而繞過網際網路擁堵鏈路,減輕主站點伺服器負載,實現異地網路加速,並解決了單純cache/mirror不能解決的難題。
---- smart cdn通過dns解析或http重定向兩種方式工作,通過cache伺服器或異地的映象站點完成內容的傳送與同步更新。dns方式使用者位置判斷準確率大於85%,http方式準確率為99%以上。經實際測算,各cache伺服器群的使用者訪問流入資料量與cache伺服器到原始**取內容的資料量之比在2:1到3:1之間,即分擔50%~70%的到原始**重複訪問資料量(主要是、流**檔案等內容)。對於映象,除資料同步的流量,其餘均在本地完成,不訪問原始伺服器。
---- smart cdn系統基於使用者實際訪問的ip位址判斷使用者位置,直接將使用者訪問指向響應速度最快的站點。整個系統管理簡單,使用者可通過gui確定有哪些內容需要做分布式分發,系統會自動完成內容的複製、更新及資料庫同步的全過程。並且,系統具有自診斷、負載均衡的能力,任何環節發生故障,不會影響整個系統的可訪問性。
---- 可以說,負載均衡技術在cdn中發揮著重要的作用,其能力高低對cdn的效能產生直接影響。smart cdn所採用的負載均衡具有一定的優勢,主要體現在如下幾個方面。
----1. 高智慧型化
---- 運用虛擬ip(vip)位址代表目標伺服器和應用,smart cdn將會話分配到最高可用性的伺服器,全程監控每個會話。服務恢復後自動重新登記,並在**客戶機和伺服器資訊包時提供全位址轉換。smart cdn採用了包括迴圈法、最少連線法、雜湊法或最少失誤法等多種不同的負載均衡方法,並對個別伺服器配置最大連線數量閾值和加權值,這樣可以有效避免伺服器超載。
----2. 高可靠性
---- smart cdn架構在互聯通專用的高速骨幹網之上,該主幹網路提供延遲極小的網路連通性,從而保障gslb的功能正常發揮和高效能,優於基於公網的gslb。並且,當主站點機房的internet出口出現故障時,smart cdn還能將使用者自動、透明地從其他分站點internet入口導向主站點伺服器,從而提高了網路的可靠性。
----3. 高可用性
---- 採用熱備份方法,在極短時間內對伺服器鏈路、交換埠和交換機進行檢測和故障轉移,使應用免受故障影響。一旦任何乙個伺服器或伺服器**生故障或阻塞,使用者將被自動引導到下乙個最佳備份伺服器或站點,從而更進一步提高了服務和內容的可用性。
----4. 高冗餘性
---- smart cdn執行在互聯通「三環巢狀」網路主幹架構之上,具有高冗餘特點,從而保證了高可靠性和高可用性,這一點和其他基於公網的gslb解決方案有很大差別。
---- 另外,smart cdn在服務上的優勢體現在: 通過互聯通專有鏈路系統,可提高使用者訪問的響應速度;保證了兩岸三地區域內多點多地伺服器內容同步;消除了峰值訪問(peak load)對出口鏈路及伺服器效能的壓力;提高了租用鏈路的頻寬利用率; 降低了原始web/ftp**的負載等。
全域性負載均衡與CDN內容分發
cdn的全稱是content delivery network,即內容分發網路。cdn是構建在現有網路基礎之上的智慧型虛擬網路,依靠部署在各地的邊緣伺服器,通過中心平台的負載均衡 內容分發 排程等功能模組,使使用者就近獲取所需內容,降低網路擁塞,提高使用者訪問響應速度和命中率。cdn的關鍵技術主要有...
DNS負載均衡與CDN內容分發技術
負載均衡 負載均衡技術能平衡伺服器及群眾所有的伺服器和請求應用之間的通訊負載,根據實時響應時間進行判斷,將任務交由負載最輕的伺服器來處理,以實現真正的智慧型通訊管理和最佳的伺服器群效能,從而使 始終保持執行和保證其可訪問性。dns負載均衡 為了充分利用現有伺服器軟體的種種優勢,負載均衡最好是在伺服器...
簡述負載均衡 CDN技術
曾經見到知乎上有人問 為什麼像facebook這類的 需要上千個工程師維護?下面的回答多種多樣,但總結起來就是 乙個高效能的web系統需要從無數個角度去考慮他,大到伺服器的布局,小到軟體中某個檔案的實現,甚至於某個迴圈內的運算如果出現不嚴謹都可能導致全盤崩潰。上面提到web效能優化需要多個角度去考慮...