CDN工作機制和負載均衡

来源:https://www.cnblogs.com/thelovelybugfly/archive/2019/02/28/10447981.html
-Advertisement-
Play Games

定義: CDN 即內容分佈網路,(Content Delivery Netwrok) ,是構築在現有Internet上的一種先進的流量分配網路,其目的是通過在現有的Internet中增加一層新的網路架構,將網站的內容發佈到最接近用戶的網路“邊緣”,使用戶可以就近取得所需的內容,提高用戶訪問網站的相應 ...


定義:

   CDN 即內容分佈網路,(Content Delivery Netwrok) ,是構築在現有Internet上的一種先進的流量分配網路,其目的是通過在現有的Internet中增加一層新的網路架構,將網站的內容發佈到最接近用戶的網路“邊緣”,使用戶可以就近取得所需的內容,提高用戶訪問網站的相應速度。有別於鏡像,但是比鏡像更智能,可以做個比喻:

CDN = 鏡像(mirror)  + 緩存(cache) + 整體負載均衡(GSLB) , 所以,CDN 可以明顯提高網路中的信息流動的效率。

     目前CDN 都以緩存網站中的靜態數據為主,如CSS,JS ,圖片和靜態頁面等數據,運營商的寬頻電視網路除外,以移動為例,移動的寬頻電視CDN,則是以節目資源為主。  用戶在從主站伺服器請求到動態內容後,再從CDN 下載這些緩存數據,從而加速網頁數據內容的下載速度,比如淘寶。90%以上的數據都是由CDN 來提供的。

  CND 達到的要求:

 可擴展性:  

   性能可擴展: 為應對新增的大量數據,用戶和事務的擴展能力。

           成本可擴展:用低廉的運營成本提供動態的服務能力和高質量的內容分發。

安全性:

           強調提供物理設備,網路,軟體,數據和服務過程的安全性(趨勢) 減少因為DDoS 攻擊或者其他惡意行為造成的商業網站業務中斷

可靠,相應和執行性:

           服務可用性指能夠處理可能的故障和用戶體驗下降的問題,通過負載均衡及時提供網路的容錯機制。

CDN 架構: 

Web 請求過程

如果是訪問某個靜態文件 如CSS,這個靜態文件的地址比如是www.baidu.com。則會首先向Local DNS 伺服器發起請求,經過迭代解析後,會回到這個功能變數名稱的註冊伺服器去解析,一般公司都會有一個DNS解析伺服器,這時這個DNS 伺服器通常會把它重新CNAME 解析到另外一個功能變數名稱,而這個功能變數名稱最終會被指向CDN 全局中的DNS 負載均衡器,再由這個GTM 來最終分配是哪個地方的訪問用戶,返回給離這個訪問用戶最近的CDN節點。拿到DNS 解析結果,用戶就會直接去這個CDN節點訪問這個靜態文件了 。如果這個節點中所請求的文件不存在,就會再回到源站去獲取這個文件,然後再返回給用戶。

負載均衡:

 負載均衡就(Load Balance) 就是對工作任務進行平衡,分攤到多個操作單元,伺服器上進行執行嗎,比如專門的圖片伺服器,應用伺服器,Web伺服器等,共同完成工作任務,它可以提高伺服器響應速度以及利用效率,避免軟體或者硬體的模塊出現單點失效,解決網路擁塞問題,實現地理位置的無關聯性,提供較為一致的訪問質量,是分散式系統的精髓所在。

三種負載均衡的架構: 

鏈路負載均衡,集群負載均衡,操作系統負載均衡。

鏈路負載均衡: 

 即通過DNS 解析成不同的IP,然後用戶通過IP 來訪問不同的目標伺服器。這種負載均衡是由DNS的解析來完成的,用戶最終訪問哪個Web伺服器是由DNS Server來控制的,在這裡就是下麵的Global DNS Server來動態解析功能變數名稱服務,這種DNS 解析的有點是用戶會直接訪問目標伺服器,不需要經過其他代理的伺服器,速度快,但是因為DNS 在用戶本地和Local DNS Server 都有緩存,如果某台Web伺服器掛了,那麼就很難及時更新用戶的功能變數名稱解析結構。如果用戶功能變數名稱沒有更新,那麼就會無法訪問該功能變數名稱。

  

集群負載均衡:

 集群負載是另外一種常見的負載均衡方式,它一般分為硬體負載和軟體負載,硬體負載使用一臺專門的硬體設備來進行請求的轉發,如圖,恰恰硬體負載均衡的關鍵就是這台轉發請求的設備,這是一臺非常昂貴的設備,通常為了安全需要,一主一備,優點是性能非常好,缺點就是非常昂貴,一般公司是用不起的,而且當訪問量突然增大超出伺服器極限的時候,不能進行動態的擴容。

硬體負載均衡

軟體負載均衡: 這是使用最普遍的一種方式,使用成本非常低,直接使用簡單的PC 就可以搭建,當然缺點就是一般一次訪問請求需要經過多次代理伺服器,會增加網路的延時,如圖。上面兩台LVS,使用四層負載均衡, 即在網路層利用IP地址進行地址轉發,下麵三台使用HAProxy 進行七層負載,可以根據訪問用戶的HTTP請求頭進行負載均衡,比如可以根據不同的URL 來將請求轉發到特定的機器或者根據用戶的Cookie信息來指定訪問的機器。

操作系統負載均衡:

    就是利用操作系統級別的軟中斷或者硬體中斷來達到負載均衡,比如設置多隊列的網卡等,來實現。

CDN 動態加速:

CDN 動態加速技術也是當前比較流行的一種優化技術,它的技術原理就是在CDN 的DNS 解析中通過動態的鏈路探測來尋找回源最好的一條路徑,然後通過DNS的調度,將所有請求調度到選定的這條路徑上回源,從而加速訪問效率,如圖.由於CDN 是遍佈全國的,所以用戶接入一個CDN 節點後,可以選擇一條從離用戶最近的CDN 節點到源站鏈路最好的路徑讓用戶走,一個簡單的原則就是在每個CDN 節點上從源站下載一個一定大小的文件,看哪個鏈路的總耗時最短,這樣可以構成一個鏈路列表,然後綁定到DNS 解析上,更新到Local DNS ,當然,是否走這個鏈路並不一定根據耗時這個唯一條件,有時也要考慮網路成本,比如走該節點可以節約5ms,但是網路帶寬成本卻增加了很多,還有其他網路鏈路的安全等等的因素也要考慮。

 


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

-Advertisement-
Play Games
更多相關文章
  • 前言 開心一刻 說實話,作為一個宅男,每次被淘寶上的雄性店主追著喊親,親,親,這感覺真是噁心透頂,好像被強吻一樣。。。。。。。。。更煩的是我每次為了省錢,還得用個女號,跟那些店主說:“哥哥包郵嘛麽嘰。”,“哥哥再便宜點唄,我錢不夠了嘛,5555555,”。 知道後的店主 路漫漫其修遠兮,吾將上下而求 ...
  • 1. Python爬蟲入門教程 爬取背景 2019年1月10日深夜,打開了百思不得姐APP,想了一下是否可以爬呢?不自覺的安裝到了夜神模擬器裡面。這個APP還是比較有名和有意思的。 下麵是百思不得姐的簡介 年度超好玩的搞笑內容平臺,整個互聯網能嗨翻宇宙的神級腦洞大神段子手們都在這.. 新鮮的視頻,爆 ...
  • 題意 "題目鏈接" Sol 好像搞出了一個和題解不一樣的做法(然而我考場上沒寫出來還是爆零0) 一個很顯然的思路是考慮每個最小值的貢獻。 預處理出每個數左邊第一個比他小的數,右邊第一個比他大的數。 那麼$[L_i + 1, i]$對$[i, R_i]$中的每個數都會有$a[i]$的貢獻。 我們可以抽 ...
  • pip如今已經成為了Python的一大特色,可以很方便得協助Python開發者進行包管理。本文詳細介紹了pip命令的使用方法。 ...
  • __getattribute__ 官方文檔中描述如下: 該方法可以攔截對對象屬性的所有訪問企圖,當屬性被訪問時,自動調用該方法(只適用於新式類)。因此常用於實現一些訪問某屬性時執行一段代碼的特性。 需要註意的是,正式由於它攔截對所有屬性的訪問(包括對__dict__的訪問),在使用中要十分小心地避開 ...
  • IT是全國平均薪資最高的行業,2017年全國最高,人均13點4萬每年. 但技術固然好,創業拼的還是世界觀下的創意. 蘑菇街,並夕夕,TikTok,頭條,哪個不是創意用IT技術的現實化?? 未來,大平臺是Dio絲(歐拉木大)用的,中等偏上的人還是會用個人定製...上等人我不知道 加油吧,未來引擎是服務 ...
  • 發個致富腦洞:我就在想本人雖然單身,但本人戀愛經歷很多,追女生技術十足,女朋友漂亮又賢惠.如果本人開個平臺幫人誠心介紹女朋友,男女成男女朋友經男方同意我收2.5萬(IT界平均月收入的1.5倍不到),雙方結婚我再收2.5萬,總共5萬.如果沒結婚隨時可退錢,房產證做抵押,不知道行不行啊...本著給極少數 ...
  • 觀察者模式 嗨,大家好,我們又見面了,不知道上次的籃球比賽大家是不是還意猶未盡呢,沒看到的同學可以前往https://www.cnblogs.com/MrJR/p/10441166.html觀摩哦。 今天呢,我們來看另一個Java設計模式——觀察者模式。 顧名思義,觀察者模式,那肯定要有觀察者,既然 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...