內容分髮網絡CDN

来源:https://www.cnblogs.com/liugp/archive/2022/06/18/16389482.html
-Advertisement-
Play Games

一、CDN是什麼? CDN的全稱是Content Delivery Network,即內容分髮網絡。其目的是通過在現有的Internet中增加一層新的CACHE(緩存)層,將網站的內容發佈到最接近用戶的網路”邊緣“的節點,使用戶可以就近取得所需的內容(就近原則),提高用戶訪問網站的響應速度。從技術上 ...


一、CDN是什麼?

CDN的全稱是Content Delivery Network,即內容分髮網絡。其目的是通過在現有的Internet中增加一層新的CACHE(緩存)層,將網站的內容發佈到最接近用戶的網路”邊緣“的節點,使用戶可以就近取得所需的內容(就近原則),提高用戶訪問網站的響應速度。從技術上全面解決由於網路帶寬小、用戶訪問量大、網點分佈不均等原因,提高用戶訪問網站的響應速度。

CDN的優勢很明顯:

(1)CDN節點解決了跨運營商和跨地域訪問的問題,訪問延時大大降低;
(2)大部分請求在CDN邊緣節點完成,CDN起到了分流作用,減輕了源站的負載。

二、CDN的相關技術

CDN的實現需要依賴多種網路技術的支持,其中負載均衡技術動態內容分發與複製技術緩存技術是比較主要的幾個,下麵讓我們簡單看一下這幾種技術。

2.1、負載均衡技術

在CDN中,負載均衡又分為伺服器負載均衡和伺服器整體負載均衡(也有的稱為伺服器全局負載均衡)。伺服器負載均衡是指能夠在性能不同的伺服器之間進行任務分配,既能保證性能差的伺服器不成為系統的瓶頸,又能保證性能高的伺服器的資源得到充分利用。而伺服器整體負載均衡允許Web網路托管商、門戶站點和企業根據地理位置分配內容和服務。通過使用多站點內容和服務來提高容錯性和可用性,防止因本地網或區域網路中斷、斷電或自然災害而導致的故障。在CDN的方案中伺服器整體負載均衡將發揮重要作用,其性能高低將直接影響整個CDN的性能。

2.2、動態內容分發與複製技術

大家都知道,網站訪問響應速度取決於許多因素,如網路的帶寬是否有瓶頸、傳輸途中的路由是否有阻塞和延遲、網站伺服器的處理能力及訪問距離等。多數情況下,網站響應速度和訪問者與網站伺服器之間的距離有密切的關係。如果訪問者和網站之間的距離過遠的話,它們之間的通信一樣需要經過重重的路由轉發和處理,網路延誤不可避免。一個有效的方法就是利用內容分發與複製技術,將占網站主體的大部分靜態網頁、圖像和流媒體數據分發複製到各地的加速節點上。所以動態內容分發與複製技術也是CDN所需的一個主要技術。

2.3、緩存技術

緩存技術已經不是一種新鮮技術。Web緩存服務通過幾種方式來改善用戶的響應時間,如代理緩存服務、透明代理緩存服務、使用重定向服務的透明代理緩存服務等。通過Web緩存服務,用戶訪問網頁時可以將廣域網的流量降至最低。對於公司內聯網用戶來說,這意味著將內容在本地緩存,而無須通過專用的廣域網來檢索網頁。對於Internet用戶來說,這意味著將內容存儲在他們的ISP的緩存器中,而無須通過Internet來檢索網頁。這樣無疑會提高用戶的訪問速度。CDN的核心作用正是提高網路的訪問速度,所以,緩存技術將是CDN所採用的又一個主要技術。

三、CDN工作過程

  1. 當用戶輸入網址回車後,經過本地DNS系統解析,DNS會將最終的功能變數名稱解析權交給CNAME 指向的CDN 專用DNS伺服器。

  2. CDN的DNS伺服器將 CDN的全局負載均衡 設備ip 地址返回給瀏覽器

  3. 用戶向 CDN的全局負載均衡伺服器 發起內容url 請求

  4. CDN全局負載均衡伺服器根據 用戶請求的IP地址,url等信息,選擇一臺用戶所屬區域的負載均衡設備,告訴用戶向這台設備發起請求。

  5. CDN區域負載均衡伺服器會為用戶 選擇一臺合適的緩存伺服器提供服務,選擇的依據主要是:離用戶距離要近,緩存伺服器上是否用戶所需內容,以及各個緩存當前的一個負載均衡情況。選擇出一個最優的 緩存伺服器ip地址。

  6. 全局負載均衡伺服器將 緩存伺服器的ip地址給到用戶。

  7. 用戶向緩存伺服器發起請求。緩存伺服器響應用戶請求,將用戶所需內容傳送到用戶終端。如果緩存伺服器上沒有用戶想要的內容,那麼這台伺服器就會向它的上一級緩存伺服器請求內容,直至追溯到網站的源伺服器,並將內容拉取到本地。

細節流程圖:

整體圖:

通過dig或nslookup查看功能變數名稱解析:


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

-Advertisement-
Play Games
更多相關文章
  • 面對對象程式設計 第十到十六周作業總結 引言:java的課程進入尾聲,但是編程的路才剛開始。 前言:這三周的大作業主要考察各個類之間的關係,數據的封裝,類的繼承,多態,介面,抽象類,集合框架等多個知識的綜合運用。 自學正則表達式的使用,有些題目對於格式的判斷非常的複雜,使用正則表達有效判斷了輸入的合 ...
  • pycharm 常用快捷鍵 更多教程請點擊查看gale博客🚀 最重要的快捷鍵 ctrl+shift+A:萬能命令行 shift兩次:查看資源文件 新建工程第一步操作 module設置把空包分層去掉,compact empty middle package 設置當前的工程是utf-8,設置的Edit ...
  • 背景 我在的學校校園網登錄是web式的,即隨便打開一個網頁就會自動跳轉到登錄頁面,然後輸入用戶名密碼,點登錄,便可以上網了。 但這種登錄方式有個缺點:登錄狀態不會一直保持下去。即過一段時間就會掉線,然後你需要重新登陸才行。這個時間大概是一天。 這就蛋疼了,想讓實驗室的電腦隨時保持聯網狀態怎麼辦呢?( ...
  • 今天分享一篇文章,是關於如何使用 Manim 這個工具 Python 工具庫來製作視頻的。 據我所知,目前應該是沒有專門的書籍和教程來介紹這個工具的。至於教程,不同版本的Manim有一部分文檔,其中 Manim社區 版的文檔相對而言要完善些。 本次僅介紹 Manim 中 文本 的使用,使用的版本為 ...
  • 程式員都知道寫代碼是一件低調又枯燥的事情,一天到晚盯著電腦屏幕看。怎麼能讓寫代碼變成一件酷炫的事情,那就從裝扮編輯器開始。 安裝了這些插件,保證同事看到後,都會問你。 兄弟,你安裝了什麼插件,讓我也裝一下。 1. 先換個漂亮主題 Vuesion Theme Idea編輯器的界麵灰矇矇的,有點性冷淡的 ...
  • 一、題目 描述 給定一個僅包含0和1的n*n二維矩陣,請計算二維矩陣的最大值。 計算規則如下 1、每行元素按下標順序組成一個二進位數(下標越大約排在低位),二進位數的值就是該行的值,矩陣各行之和為矩陣的值 2、允許通過向左或向右整體迴圈移動每個元素來改變元素在行中的位置 比如:[1,0,1,1,1] ...
  • 做下記錄, 首先插入一個dataGridView控制項,兩個button按鈕(導入數據,導出數據),一個ComboBox(獲取列標題使用),一個textbox(輸入關鍵字),一個定位按鈕(定位使用) 1,導入數據(NPOI) 1 2 private void daoRuShuJu_cmd_Click( ...
  • 最近在看 C++ 的方法和類模板,我就在想 C# 中也是有這個概念的,不過叫法不一樣,人家叫模板,我們叫泛型,哈哈,有點意思,這一篇我們來聊聊它們底層是怎麼玩的? 一:C++ 中的模板玩法 畢竟 C++ 是相容 C 語言,而 C 是過程式的玩法,所以 C++ 就出現了兩種模板類型,分別為:函數模板 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...