二. 应用加速(微服务架构设计的cdn访问加速)
這里寫目錄標題
- 1. CDN的產生及作用
- 1. 2. CDN(Content Delivery Network),即內容分發網絡
- 2.訪問源站的過程(DNS)
- 2.1DNS的記錄類型(以阿里云為例)
- 2.2通過CDN獲取緩存內容的過程
- 3 CDN的網絡架構
- 4 CDN相關術語
- 5 CDN應用場景
- 5.1 網頁站點加速
- 5.2 下載加速
- 5.3 視頻點播
- 5.4 視頻直播
- 5.5 移動加速
- 6 阿里云CDN實踐
- 6.1 使用CDN
- 6.2 開通CDN服務
- 6.3 添加加速域名
- 6.4 配置CNAME
- 6.5 服務管理
- 6.6 刷新預熱
- 7 域名管理
- 7.1 回源配置
- 7.2 緩存配置
- 7.3 訪問控制
- 7.3 性能優化
- 7.4 視頻相關
1. CDN的產生及作用
隨著時代的發展,網民數量增多,訪問路徑過長,所以當用戶與網站之間的鏈路被突發的大流量數據擁塞時,不同地區的用戶訪問網站的響應速度存在差異,為了提高用戶訪問的響應速度、優化現有Internet中信息的流動,需要在用戶和服務器間加入中間層CDN。
CDN將內容推送到網絡邊緣,大量的用戶訪問被分散在網絡邊緣,不再構成網站出口、互聯互通點的資源擠占,也不再需要跨越長距離IP路由,即減少了源服務器的資源占用,企業大大提升了用戶訪問的響應時間,從而使用戶能以最快的速度,從最接近用戶的地方獲得所需的信息,徹底解決網絡擁塞,提高響應速度。
1. 2. CDN(Content Delivery Network),即內容分發網絡
其目的是通過在現有的Internet中增加一層新的CACHE(緩存)層,將網站的內容發布到最接近用戶的網絡”邊緣“的節點,使用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。從技術上全面解決由于網絡帶寬小、用戶訪問量大、網點分布不均等原因,提高用戶訪問網站的響應速度
2.訪問源站的過程(DNS)
在瀏覽器中輸入www.baidu.com,最終會將該域名解析為一個IP地址。
DNS:域名系統,Domain Name System,核心作用就是就是將一個域名解析為IP地址。
(1)客戶端首先會在本機的hosts文件和hosts緩存中查找該域名對應的IP地
址;
(2)如果本機中沒有此信息,則會到我們的 本地DNS 進行詢問該域名對應的IP地址;
(3)如果本地DNS中仍然沒有該域名的IP信息時,則會由本地DNS依次向 根 DNS 、 頂級域DNS 、 權威DNS 進行詢問,最終 本地DNS 將IP地址發送給客戶端。
(4)客戶端通過IP地址向遠程的源站服務器發出HTTP請求并獲取相應的數據內容。以上是通過DNS的 迭代解析 模式獲取域名對應的IP地址并發送HTTP請求的過程。源站的提供商通過配置權威DNS將源站的域名與提供服務的服務器主機進行綁定,使客戶端通過DNS服務可以順利地獲取源站域名對應的IP地址并通過IP地址與源站進行通信。
2.1DNS的記錄類型(以阿里云為例)
在DNS系統中,最常見的資源記錄方式是Internet類記錄,該記錄由包含4個字段的數據構成:Name、Value、Type、TTL。其中Name和Value可以理解為一對鍵值對,但是其具體含義取決于Type的類型,TTL記錄了該條記錄應當從緩存中刪除的時間。在資源記錄的類型中中,最為常見且重要的類型Type主要有:
- A記錄(Address)
A記錄用于描述目標域名到IP地址的映射關系,將目標域名與A記錄的Name字段進行匹配,將成功匹配的記錄的Value字段的內容(IP地址)輸出到DNS回應報文中。
- NS記錄(Name Server)
NS記錄用于描述目標域名到負責解析該域名的DNS的映射關系,根據目標域名對NS記錄的Name字段進行匹配,將成功匹配的記錄的Value字段(負責解析目標域名的DNS的IP地址)輸出到DNS回應報文中。 - CNAME記錄
CNAME記錄用于描述目的域名和別名的對應關系,如果說A記錄可以將目標域名轉換為對應主機的IP地址,那么CNAME記錄則可以將一個域名(別名)轉換為另一個域名,如果多條CNAME記錄指向同一個域名,則可以將多個不同的域名的請求指向同一臺服務器主機。并且,CNAME記錄通常還對應了一條A記錄,用于提供被轉換的域名的IP地址。
2.2通過CDN獲取緩存內容的過程
CDN將我們對源站的請求導向了距離用戶較近的最優緩存節點,而非源站。
下圖所示是通過CDN進行請求響應的過程圖。通過圖中可以看出:
在DNS解析域名時新增了一個 全局負載均衡系統(GSLB),GSLB的主要功能是根據用戶的本地DNS(通常距離用戶的物理位置較近)的IP地址判斷用戶的位置,篩選出距離用戶較近的本地負載均衡系統(SLB) ,并將該SLB的IP地址作為結果返回給本地DNS。
SLB主要負責判斷 緩存服務器集群 中是否包含用戶請求的資源數據,如果緩
存服務器中存在請求的資源,則根據緩存服務器集群中節點的健康程度、負載量、連接數等因素篩選出最優的緩存節點,并將HTTP請求重定向到最優的緩存節點上。
GSLB :Global Server Load Balancing,全局負載均衡服務器。
SLB(Server load balancing):負載均衡服務器是對集群內物理主機的負載均
衡,而GSLB是對物理集群的負載均衡。
為了更清晰地說明CDN的工作原理,下面以客戶端發起對"www.edu.lagou.co
m/index.html"的HTTP請求為例進行說明:
一個普通的DNS請求:
① 用戶提交域名
② 客戶端解析域名
③ DNS服務器解析出IP
④ 客戶端請求IP
⑤ 返回結束
加入了GSLB的請求:
① 提交域名
② 客戶端解析域名
③ NS(name server,將域名解析到另一個)解析到GSLB
④ GSLB解析并返回IP
⑤ 客戶端請求IP
⑥ 返回結束
3 CDN的網絡架構
CDN網絡架構主要由兩大部分,分為中心和邊緣兩部分:
中心指CDN網關中心和DNS重定向解析中心,負責全局負載均衡,設備系統
安裝在管理中心機房。邊緣主要指異地節點,CDN分發的載體,主要由Cache和負載均衡器等組成。
中心:CDN網關中心、DNS重定向解析中心
邊緣:Cache、負載均衡器
當用戶訪問加入CDN服務的網站時,域名解析請求將最終交給全局負載均衡
DNS進行處理。全局負載均衡DNS通過一組預先定義好的策略,將當時最接近
用戶的節點地址提供給用戶,使用戶能夠得到快速的服務。同時,它還與分布 在世界各地的所有CDN節點保持通信,搜集各節點的通信狀態,確保不將用戶
的請求分配到不可用的CDN節點上,實際上是通過DNS做全局負載均衡。
對于普通的Internet用戶來講,每個CDN節點就相當于一個放置在它周圍的
WEB。通過全局負載均衡DNS的控制,用戶的請求被透明地指向離他最近的節
點,節點中CDN服務器會像網站的原始服務器一樣,響應用戶的請求。由于它 離用戶更近,因而響應時間必然更快。
每個CDN節點由兩部分組成:負載均衡設備和高速緩存服務器 負載均衡設備負責每個節點中各個Cache的負載均衡,保證節點的工作效率;
同時,負載均衡設備還負責收集節點與周圍環境的信息,保持與全局負載DNS 的通信,實現整個系統的負載均衡。
高速緩存服務器(Cache)負責存儲客戶網站的大量信息,就像一個靠近用戶 的網站服務器一樣響應本地用戶的訪問請求。
理論上,最簡單的CDN網絡有一個負責全局負載均衡的DNS和各節點一臺
Cache,即可運行。DNS支持根據用戶源IP地址解析不同的IP,實現就近訪問。
為了保證高可用性等,需要監視各節點的流量、健康狀況等。一個節點的單臺
Cache承載數量不夠時,才需要多臺Cache,多臺Cache同時工作,才需要負載 均衡器,使Cache群協同工作
4 CDN相關術語
1、源站
指發布內容的原始站點,也就是做 CDN 之前客戶真正的服務器。
2、邊緣服務器(Edge Server)
對于邊緣服務器,CDN提供了就近訪問的能力,邊緣服務器節點就是實際提
供給用戶就近連接、訪問的服務器。
3、CDN命中率
CDN一般提供的是靜態加速能力,靜態加速能力通常通過緩存架構來實現,
CDN命中指的是CDN服務器有該資源緩存存在,請求到達CDN節點時,CDN服務器可以在本地緩存獲取資源直接返回客戶端,如果沒有命中,則需CDN節點到源站獲取資源。CDN命中的概率即CDN命中率。
4、回源
當CDN沒有命中緩存時,需要到源站去獲取資源,這個過程稱為回源,回源
需要從CDN節點層層代理訪問,最終到源站獲取資源。
5、中間層服務器
邊緣節點比較松散,因此存在緩存穿透的問題。為了避免回源引起的性能大
幅下降,在CDN的中間層服務器將多個CDN節點的訪問進行收斂,從而大幅提高命中率。
5 CDN應用場景
5.1 網頁站點加速
5.2 下載加速
5.3 視頻點播
5.4 視頻直播
5.5 移動加速
6 阿里云CDN實踐
(1)阿里云CDN主要的應用場景包括:
-
圖片小文件:如果您的網站或應用App的主要業務為圖片和小文件下載,包括各類型圖片、html、css、js小文件等。
-
大文件下載:網站或應用App的主要業務為大文件下載,平均單個文件大小在20M以上,如游戲、各類客戶端下載和App下載商店等。
-
視音頻點播:網站或應用App的主要業務為視頻點播或短視頻類。支持
MP4、FLV等主流視頻格式。 -
全站加速:全站加速是阿里云一款獨立產品,主要用于動態內容加速,也可以實現動靜分離加速。
-
安全加速:如果您的網站易遭受攻擊且必須兼顧加速的業務場景,則需要使用安全加速功能,提升全站安全性
(2)阿里云CDN工作原理
假設加速域名為 www.a.com ,接入CDN網絡,開始使用加速服務后,當終端用戶(北京)發起HTTP請求時,處理流程如下圖所示。
LDNS(本地DNS)發起域名解析請求。
如果該IP地址對應的節點已緩存該資源,則會將數據直接返回給用戶,
例如,圖中步驟7和8,請求結束。
如果該IP地址對應的節點未緩存該資源,則節點向源站發起對該資源的
請求。獲取資源后,結合用戶自定義配置的緩存策略,將資源緩存至節
點,例如,圖中的北京節點,并返回給用戶,請求結束。
6.1 使用CDN
6.2 開通CDN服務
(1)前提條件:
執行本文操作之前,請確保您已完成阿里云賬號注冊和實名認證。
(2)操作步驟:
登錄阿里云CDN平臺。
單擊立即開通。
選擇適合您的計費類型,并選中服務協議
6.3 添加加速域名
如果需要使用CDN加速指定網站上的業務,則需要將該網站作為源站,為其創建加速域名。CDN通過加速域名將源站上的資源緩存到CDN的加速節點,實現資源訪問加速 。
(1)操作步驟:
- 登錄CDN控制臺。
在左側導航欄,單擊域名管理。
在域名管理頁面,單擊添加域名。
配置加速域名、資源分組、業務類型、源站信息、端口和加速區域。
- 單擊下一步
當您加速域名審核通過后,會出現在域名管理的域名列表中。狀態為正常運
行,表示添加成功。
6.4 配置CNAME
加速域名添加成功后,阿里云CDN會分配對應的CNAME地址。如果啟用CDN加速服務,則需要將加速域名指向CNAME地址,訪問加速域名的請求才能轉發到CDN節點上,達到加速效果。
獲取加速域名的CNAME地址。
(1)獲取加速域名的CNAME地址。
- 登錄CDN控制臺。
- 在左側導航欄,單擊域名管理。
- 進入域名管理頁面,復制加速域名對應的CNAME值。
(2)添加CNAME記錄。
該步驟以在阿里云云解析DNS控制臺添加CNAME記錄為例,為您介紹
CNAME的配置流程。如果您是在DNSPod、新網、Godaddy等其他域名解析服務商設置的域名解析,請前往對應的域名解析服務商添加CNAME記錄,添加方法和本文介紹的方法類似。 - 登錄阿里云云解析DNS控制臺。
- 進入域名解析頁面,在您需要設置的域名后面,單擊解析設置。
- 單擊添加記錄,添加CNAME記錄。
- 說明
記錄類型:選擇 CNAME 。
主機記錄:加速域名的前綴。
- 解析線路:默認值。
- 記錄值:輸入加速域名對應的CNAME地址。
- TTL:默認值。
(3)驗證CNAME配置是否生效。
6.5 服務管理
如果需要通過監控、統計分析、用量查詢、刷新預熱、日志分析等對CDN資源進行管理,則可以使用阿里云CDN控制臺提供的服務管理功能。通過該功能可以實時有效的分析CDN運行狀況,并及時做出業務決策。
阿里云CDN服務管理功能列表:
6.6 刷新預熱
CDN提供資源的刷新和預熱功能。通過刷新功能,可以強制CDN節點回源并獲取最新文件;通過預熱功能可以在業務高峰期預熱熱門資源,提高資源訪問效率。
CDN提供的資源的刷新和預熱功能的概念如下:
-
刷新功能是指提交URL刷新或目錄刷新請求后,CDN節點的緩存內容將會被強制過期,當向CDN節點請求資源時,CDN會直接回源站獲取對應的資源返回給您,并將其緩存。刷新功能會降低緩存命中率。使用場景:通常是在源站點中進行了靜態資源的更新。從邊緣節點主動去源站加載最新資源。
-
預熱功能是指提交URL預熱請求后,源站將會主動將對應的資源緩存到CDN節點,當首次請求時,就能直接從CDN節點緩存中獲取到最新的請求資源,無需再回源站獲取。預熱功能會提高緩存命中率。
操作步驟:
刷新和預熱功能的詳細說明如下表所示。
7 域名管理
7.1 回源配置
當通過客戶端請求訪問資源時,如果CDN節點上未緩存該資源,則會到源站獲取,同時緩存到CDN節點??梢愿鶕枧渲没卦吹南嚓P功能,提升資源訪問效率。
7.2 緩存配置
CDN加速靜態資源時,將源站上的資源緩存到距離客戶端最近的CDN節點上。當訪問該靜態資源時,直接從緩存中獲取,避免通過較長的鏈路回源,提高訪問效率。
7.3 訪問控制
可以通過設置Referer、IP、UsageAgent黑名單和白名單,以及URL鑒權,來實
現對訪客身份的識別和過濾,從而限制訪問CDN資源的用戶,提升CDN的安全
性。
7.3 性能優化
設置加速域名的性能優化功能,縮小訪問文件的體積,提升加速業務的效率和
頁面可讀性。
扛住雙11流量洪峰:憑借全國加速節點、智能彈性調度系統及安全防護能力,
完美支持過億QPS峰值,保證全球數億買家快速瀏覽高清圖片和視頻,流暢下
單??梢酝ㄟ^性能優化功能,對域名執行如下操作。
7.4 視頻相關
可以通過設置Range回源和拖拽播放功能,減少回源流量消耗,并且提升視音
頻的播放效果。
可以通過視頻相關功能,對域名執行如下操作。
總結
以上是生活随笔為你收集整理的二. 应用加速(微服务架构设计的cdn访问加速)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python作业:学生成绩表数据包括:学
- 下一篇: 安卓 输入法出现导致布局变形问题解决