CDN - CDN架設、CDN產品介紹、CDN加速原理、CDN負載均衡

来源:https://www.cnblogs.com/blueice1204/archive/2023/01/13/17050018.html
-Advertisement-
Play Games

隨著互聯網的發展,用戶在使用網路時對網站的瀏覽速度和效果愈加重視,但由於網民數量激增,網路訪問路徑過長,從 而使用戶的訪問質量受到嚴重影響。特別是當用戶與網站之間的鏈路被突發的大流量數據擁塞時,對於異地互聯網用戶急速增加的地區來說,訪問質量不良更是一個 急待解決的問題。如何才能讓各地的用戶都能夠進行 ...


隨著互聯網的發展,用戶在使用網路時對網站的瀏覽速度和效果愈加重視,但由於網民數量激增,網路訪問路徑過長,從 而使用戶的訪問質量受到嚴重影響。特別是當用戶與網站之間的鏈路被突發的大流量數據擁塞時,對於異地互聯網用戶急速增加的地區來說,訪問質量不良更是一個 急待解決的問題。如何才能讓各地的用戶都能夠進行高質量的訪問,並儘量減少由此而產生的費用和網站管理壓力呢?內容發佈網路(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的核心作用是提高網路的訪問速度,那麼其用戶也就是訪問量很大的網站,例如ICP 、ISP、大型企業、電子商務網站和政府網站等。利用CDN技術,這些網站無需投資昂貴的各類伺服器,設立分站點。通過採用CDN,CDN將負責信息傳遞 工作,保證信息正常傳輸,而技術人員只需要維護網站內容,不需要考慮流量問題。這樣,網站可保證用戶得到更多的新業務,可以快速訪問網路上的內容,獲得更 好的服務質量。舉個例子來講,對於訪問量比較大,而被訪問內容更新周期比較長的網站,如政府網站,用戶往往進行大量的查詢工作。這類網站比較適合採用 CDN。還有,大家是否註意到,在所謂的寬頻社區中,瓶頸是社區的對外出口。這樣,如果採用CDN無疑對社區用戶使用視頻點播、網路教育等寬頻應用提供了 保證。

四、CDN的不足
任何一個新事物,在給現有模式帶來改進的同時,也必然存在一定的局限,CDN也是這樣。據互聯通網路有限公司的技術經理郭廣中講,實時性不太好是CDN的 致命缺陷。隨著對CDN需求的逐漸升溫,這一缺陷將得到改進,使來自於遠程伺服器的網路內容網頁與複本伺服器或緩存器中的網頁保持同步。解決方法是在網路 內容發生變化時將新的網路內容從伺服器端直接傳送到緩存器,或者當對網路內容的訪問增加時將數據源伺服器的網路內容儘可能實時地複製到緩存伺服器。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 著意登樓瞻玉兔,何人張幕遮銀闕?又到了一年一度的網頁小掛件環節,以往我們都是集成別人開源的組件,但所謂熟讀唐詩三百首,不會做詩也會吟,熟讀了別人的東西,做幾首打油詩也是可以的,但若不能自出機抒,卻也成不了大事,所以本次我們從零開始製作屬於自己的網頁小掛件,博君一曬。 玉兔主題元素繪製 成本最低的繪製 ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 一、audio標簽的使用 1、Audio 對象屬性 2、對象方法 二、效果 效果如下: 三、代碼 代碼如下: MusicPlayer.vue <template> <div class="music"> <!-- 占位 --> <div ...
  • 摘要:輸入網址並點回車,後臺到底發生了什麼。透析 HTTP 協議與 TCP 連接之間的千絲萬縷的關係。掌握為何是三次握手四次揮手?time_wait 存在的意義是什麼?全面圖解重點問題,再也不用擔心面試問這個問題。 本文分享自華為雲社區《輸入網址,小手一點,後面到底發生了什麼?》,作者:龍哥手記。 ...
  • 1.按鈕點擊後添加loading,介面返回成功後再移除loading(經過多次嘗試發現,此方法不能完全確保只調用一次介面,第二次添加時仍會多次調用介面),方法如下: html代碼: <el-button @click="onSave" :loading="onLoading">保存</el-butt ...
  • JavaScript 中,對於普通對象,不能直接使用 length 來獲取對象的長度,因為 JavaScript 對象並不是一種有序的集合,沒有長度的概念。 對於數組或者類數組對象,可以使用 .length 來獲取它們的長度,因為它們是有序集合。 對於字元串也可以使用.length來獲取長度,因為字... ...
  • 我們是袋鼠雲數棧 UED 團隊,致力於打造優秀的一站式數據中台產品。我們始終保持工匠精神,探索前端道路,為社區積累並傳播經驗價值。 前言 訪問控制(Access control)是指對訪問者向受保護資源進行訪問操作的控制管理。該控制管理保證被授權者可訪問受保護資源,未被授權者不能訪問受保護資源。 現 ...
  • 在 CSS 中,倒影是一種比較常見的效果。今天,我們就將嘗試,使用 CSS 完成各類不同的倒影效果,話不多說,直接進入主題。 實現倒影的兩種方式 首先,快速過一下在 CSS 中,實現倒影的 2 種方式。 使用 -webkit-box-reflect 正常而言,-webkit-box-reflect ...
  • 基於AWS雲SaaS多租戶架構設計租戶與用戶概念單租戶與多租戶多租戶的好處 採用多租戶架構方法將為你的SaaS應用程式帶來廣泛的有價值的好處。 讓我們來看看下麵的貢獻。 a) 利用多租戶架構策略,減少伺服器基礎設施成本。 與其為每個客戶創建一個SaaS環境,不如為所有客戶提供一個應用環境。這使你的A ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...