亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一個通用型的CDN,如果要服務廣域范圍內的用戶,那必然要在一個廣大的區域內部署服務節點。那么,一個很重要的問題就來了,就是如何將用戶的訪問導向到最優節點上。

最優的含義有兩層,一是訪問速度最快,二是地理上最接近。從廣域網絡的特性上來說,一般情況下是同城同運營商的兩端之間通信效果最好。

而普通用戶上網,大致的過程就是終端通過http協議訪問一個URL地址,然后由本地DNS解析得到服務器的IP地址。終端再向獲得的IP地址發起TCP連接,收取數據。

CDN系統調度原理與技術選型

無CDN時的上網過程

上圖所示是一般的訪問互聯網的過程。而在CDN系統里,終端要想與同城同運營商的節點服務器連接上,這就是全局調度要解決的核心問題。

在圖中就是“返回服務器IP地址”這一步,最理想情況下,本地DNS返回的就是最優節點地址。接下來就說明從技術上如何實現這一步。

全局調度

基于智能DNS的調度

用戶有可能在全國任何一個地點上網,不過總是要通過DNS系統解析域名而獲得服務器的IP地址。如果能夠從DNS處就取得最優節點,這勢必能大大減少調度階段所耗費的時間。

于是需要解決的第一個問題,就是如何判定終端所在的地域與運營商環境。可是在早期的DNS協議中,并不支持這一功能,DNS僅是在執行遞歸查詢之后,將配置好的IP返回。

智能DNS技術為解決這個問題提供了實現方法。智能DNS的智能之處,就是它可以獲得用戶的IP,并對其進行分析,得到用戶所在的地域和使用的運營商線路。

具備了智能DNS功能的處理過程如下圖所示。

CDN系統調度原理與技術選型

智能DNS全局調度

智能DNS技術選型

對于智能DNS的搭建,可以使用開源工具BIND(Berkeley Internet Name Domain),結合EDNS協議,再加上一個存儲了IP地址地理信息的數據庫,就可以實現智能DNS技術。

EDNS是google提交的擴展DNS協議,它相較于普通DNS,可以獲取終端真實IP地址。這樣就可以在存儲了IP地址地理信息的數據庫中通過查詢,得到終端所在的地域與所屬運營商信息,從而將其導向最優節點。

IP地址地理信息庫則可以使用GeoIP,從dev.maxmind.com站點可以下載源庫。不過,IP地理信息是時常會變化的,地址庫需要定期更新。如果在技術上要求精確,則應該考慮購買商業產品。

數據庫可使用關系型的MySQL,或者緩存型的redis。無論需要支持哪種數據庫,都必須在BIND的源碼中打上相應的補丁,經過編譯后才能使用。

技術棧:BIND(支持EDNS協議) + mysql或redis(GeoIP地理信息庫)。

基于http的重定向調度

智能DNS技術的優點突出,不過也存在一些缺陷。例如URL被本地DNS解析之后,則會將IP地址緩存起來,這樣其他終端就無法得到最優節點。

因此,在應用層根據訪問協議,以重定向的方式將終端導向最優節點,就是一個很好的解決辦法。目前應用最廣泛的,則是基于http協議的302返回碼進行跳轉。

http是一套基于文本,且簡單、清晰、易理解的應用層通信協議。它采用TCP協議進行傳輸,也是目前互聯網上最通用的應用協議。

相較于DNS的調度方式,http的調度可以擴展多個維度。因為DNS調度中只有終端IP這一個可參考依據,只能按地域和運營商來配置最優節點。

而http調度可以將內容、終端型號、用戶身份等作為參考依據,實現更加合理的調度。例如,已經緩存了內容的最優節點會被優先導向;如果是付費VIP用戶,則可以給其擁有最好線路的機房節點。

對于http全局調度服務,業界一般將其稱為GSLB(Global Server Load Balancing),即全局負載均衡。從技術實現上來說,GSLB一般是以WEB接口作為前端,然后各個廠家會實現自己的全局調度業務邏輯。

CDN系統調度原理與技術選型

http重定向的全局調度

目前業界使用較多的是Nginx+lua的方式實現服務調度。

本地調度

全局調度完成的工作,是將終端導向到最優的節點。而一個邏輯上的節點,在物理上可能是一個機房,內有數臺至數十臺的服務器。

在這些服務器上則部署著本地負載均衡服務、反向代理服務,以及內容緩存服務。而本地調度要做的工作就是在節點內部,基于負載均衡策略,為終端與緩存服務之間構建起一條數據傳輸通道。

本地調度技術選型

從實施上來說,可以選擇硬件負載均衡設備F5。也可以采用OSPF+LVS+Keepalived的技術方案。

LVS是由章文嵩博士在1998年創立的開源軟件項目。LVS是linux Virtual Server的縮寫,它的目的是將若干臺Linux服務器通過網絡組建成高性能、高可用、可伸縮的集群。

LVS工作在網絡棧的第四層,即傳輸層。它支持多種本地負載均衡策略,有VS/NAT,VS/TUN,VS/DR三種工作模式。目前業界較多采用VS/DR模式。

VS/DR是直接路由方式,實現方式是LVS收到用戶請求后,按負載均衡策略從集群中挑選了一臺服務器,然后修改請求數據包中的目標mac地址,將其轉發給目標服務器進行處理。DR模式要求集群內的服務器都在同一個網段內。

基于LVS實現負載均衡的典型架構,一般是兩臺安裝LVS的服務器作為雙主雙活,配置一個虛擬地址VIP。然后安裝支持OSPF協議的開源路由工具:Quagga。

Quagga的作用是將LVS主機虛擬成一臺路由器,這樣通過OSPF協議將物理路由器與兩臺LVS服務器,構建出等價多路徑。以此實現LVS的雙主輪詢工作方式。

在對節點內服務器探測方面,采用Keepalived開源工具。它最初就是為了LVS而設計的,可對集群內的服務器進行檢測,并實現自動化的維護工作。

CDN系統調度原理與技術選型

LVS負載均衡實現本地調度

技術棧:LVS + Quagga + Keepalived。

結語

CDN系統的調度工作分為兩個部分,一是全局調度,二是本地調度。

全局調度的目標是以最快的速度,將終端導向最優節點。最優的依據則是地理上接近、相同的運營商,節點本身緩存有請求的內容,以及節點狀況良好。

基于智能DNS技術的優點是可以解決地域與運營商的匹配,而且減少了終端與節點間建立連接的時間。但缺點是無法根據內容與用戶特點進行導向,難以擴展判斷維度。

基于http重定向的方式,則可以擁有多維度的判斷依據,而且也便于擴展。其缺點則是響應速度受限于中心服務的處理能力。

在實踐中可以采用兩者相結合的方式。例如DNS調度之后的節點如果不能滿足要求,則可以通過http的調度再匹配最優節點。

本地調度的目標,是在機房內實現數據傳輸的負載均衡。使用的技術可以是硬件F5,工作在四層的LVS,或者是Nginx。

采購硬件的方式是成本高,實施快捷。使用LVS技術能夠獲得較快的傳輸效率,但配置和管理會復雜一些。而使用Nginx則配置簡單,但傳輸效率會差一些,在吞吐量大的時候,其所在服務器可能會成為傳輸瓶頸。

分享到:
標簽:CDN
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定