日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一文了解CDN应用加速

發布時間:2023/12/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一文了解CDN应用加速 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、什么是CDN
  • 二、CDN與DNS
    • DNS的執行流程
    • DNS與CDN的關系
  • 三、CDN的應用場景


前言

隨著網絡的發展,產生了很多大型的互聯網公司,例如阿里、京東、騰訊等,假設某公司的總部在北京,他們的服務器部署在了北京,北京的用戶訪問肯定是比較快的,而廣州、海南等地區訪問存在著一定的延時,甚至達到延時達到秒級別,這種情況用戶就不能接受了,怎么提高不同地區用戶的訪問速度呢?這就是本章講解的內容 – CDN應用加速。

一、什么是CDN

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

同樣用某公司的網購物流系統舉個例子來說明CDN是干啥的:

假設某公司只有北京一個物流基地,分別有兩個買家下了訂單,一個買家在石家莊,由于北京和 石家莊的距離很近,當天上午訂單發出晚上就到了石家莊,買家1很滿意;但是另一個買家在蘭州距離比較遠,假設發出訂單后第三天還沒收到貨,買家不高興了不買了,退了訂單在線下買了,這讓用戶的體驗性太差了。于是該公司分別在每個城市都建立了物流基地,提前把貨物放到了每個城市的倉庫中,該城市的人購買后直接由最近倉庫發貨,當天到達手中,用戶覺的很滿意,于是每次都在該公司購物。

CDN中有兩個概念:源站和邊緣服務器。源站指的是沒有加入CDN之前的服務器,類似于圖中公司總部,而邊緣服務器指的是實際提供給用戶的離用戶最近的服務器,類似于圖中多個倉庫就是CDN的多個邊緣服務器,邊緣服務器存放了一些應用的靜態文件等,除此之外的post/put等操作請求還是去源站,類似于我們把貨物放在了不同的倉庫,但是發起訂單修改訂單等訂單操作和數據還是放在了公司總部。

二、CDN與DNS

DNS的執行流程

DNS大家應該都比較熟悉,域名解析系統,正常情況下我們訪問某網站都是輸入的對應的網址,因為網址的起名是有特殊意義的名稱比較容易記住,要是讓我們去記住各個網站的IP那是不可能的,就算電話號都是除了自己的其它的都記不住,更別說跟我們無關的IP地址了,DNS則負責將我們輸入的網址解析成對應的IP地址。
正常情況下DNS的執行有下面幾步操作:

  • 客戶端在本機的hosts文件和hosts緩存中查找該域名的IP地址。
  • hosts中沒有查找到就到Local DNS去查找該域名對應的IP地址。
  • Local DNS也沒有查找到,就繼續上級Root DNS、頂級DNS中去查找域名對應的IP地址(這里肯定能查到,查不到就真沒有這個網址了),找到了對應的IP發送給客戶端同時將其緩存在本地。
  • 客戶端獲取了IP地址后向對應的服務器發送請求獲取數據。
  • DNS與CDN的關系

    想要知道DNS和CDN的關系,需要先知道DNS的記錄類型,我們看一下DNS中的兩種記錄類型:A記錄與CNAME記錄,其它的記錄類型感興趣的可以自行百度去了解。

    • A記錄: 通常我們認為輸入域名后DNS直接將其解析為了IP地址,這種記錄類型就是A記錄,A記錄是用來指定域名的IP地址的,當我們輸入域名后DNS直接引導到了對應IP地址的服務器,但是這樣做是不安全的,直接暴露了服務器的IP地址容易被攻擊。
    • CNAME: CNAME是將域名與另一個域名綁定在了一起,例如有個域名www.aaa.com將其綁定到了www.bbb.com,當訪問www.aaa.com的時候DNS將其解析到了www.bbb.com,而這個www.bbb.com就是CDN服務的域名,但是瀏覽器顯示的還是www.aaa.com。

    此時還需要了解兩個概念:SLB(本地負載均衡系統)和GSLB(全局負載均衡系統),本地負載均衡系統就是我們常說的服務負載均衡系統(例如在機房兩臺服務器都部署了相同的應用做負載均衡);而全局負載均衡系統 (全局負載均衡系統中就有一種是基于CDN實現的) 指的是DNS在域名解析過程中通過用戶本地DNS地址獲取用戶所在位置,將其引導向舉例最近的本地負載均衡系統,簡單的說全局負載均衡系統是地區之間的負載均衡。

    如圖,一個海南的用戶通過www.aaa.com訪問某網站,通過DNS的CNAME最終導向了www.bbb.com(CDN服務器地址),CDN的全局負載均衡系統通過一些列復雜的算法發現用戶在海南,返回就近的本地負載均衡系統(海南的負載均衡系統),然后用戶直接去訪問海南的服務節點,這樣訪問起來比較快。

    三、CDN的應用場景

    一般情況下在以下場景會用到CDN加速:

    • 網站的前端項目,現在的項目基本上都是前后端分離的了,前端項目包含了一堆HTML、CSS樣式、JS腳本和網站圖片等文件,這些靜態文件一般是不會發生POST修改的,只是GET請求就可以獲取。
    • 應用商店項目,現在手機上都會自帶一個應用商店,應用商店里面有很多應用,一般這些應用也是不會改變的,而且應用比較大,例如王者榮耀好幾個G,直接訪問源站就很慢,所以將這些應用通過CDN放在了不同的邊緣服務器中。
    • 視頻網站,現在市場上有很多視頻網站例如B站、抖音等,這些視頻文件也是比較大的,我們看視頻的時候如果直接訪問源站可能就經常轉圈圈了,所以將其放到了CDN中不同的邊緣服務器。

    總結:用到CDN的時候一般就是一些靜態不會改變的文件,而且文件比較大(當然小文件也可以),當用戶直接通過源站訪問由于地域問題網絡延時導致的請求很慢,此時就可以將這些文件通過CDN分發到不同的邊緣服務器。

    總結

    以上是生活随笔為你收集整理的一文了解CDN应用加速的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。