日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

一個(gè)通用型的CDN,如果要服務(wù)廣域范圍內(nèi)的用戶,那必然要在一個(gè)廣大的區(qū)域內(nèi)部署服務(wù)節(jié)點(diǎn)。那么,一個(gè)很重要的問題就來了,就是如何將用戶的訪問導(dǎo)向到最優(yōu)節(jié)點(diǎn)上。

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

而普通用戶上網(wǎng),大致的過程就是終端通過http協(xié)議訪問一個(gè)URL地址,然后由本地DNS解析得到服務(wù)器的IP地址。終端再向獲得的IP地址發(fā)起TCP連接,收取數(shù)據(jù)。

CDN系統(tǒng)調(diào)度原理與技術(shù)選型

無CDN時(shí)的上網(wǎng)過程

上圖所示是一般的訪問互聯(lián)網(wǎng)的過程。而在CDN系統(tǒng)里,終端要想與同城同運(yùn)營商的節(jié)點(diǎn)服務(wù)器連接上,這就是全局調(diào)度要解決的核心問題。

在圖中就是“返回服務(wù)器IP地址”這一步,最理想情況下,本地DNS返回的就是最優(yōu)節(jié)點(diǎn)地址。接下來就說明從技術(shù)上如何實(shí)現(xiàn)這一步。

全局調(diào)度

基于智能DNS的調(diào)度

用戶有可能在全國任何一個(gè)地點(diǎn)上網(wǎng),不過總是要通過DNS系統(tǒng)解析域名而獲得服務(wù)器的IP地址。如果能夠從DNS處就取得最優(yōu)節(jié)點(diǎn),這勢必能大大減少調(diào)度階段所耗費(fèi)的時(shí)間。

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

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

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

CDN系統(tǒng)調(diào)度原理與技術(shù)選型

智能DNS全局調(diào)度

智能DNS技術(shù)選型

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

EDNS是google提交的擴(kuò)展DNS協(xié)議,它相較于普通DNS,可以獲取終端真實(shí)IP地址。這樣就可以在存儲(chǔ)了IP地址地理信息的數(shù)據(jù)庫中通過查詢,得到終端所在的地域與所屬運(yùn)營商信息,從而將其導(dǎo)向最優(yōu)節(jié)點(diǎn)。

IP地址地理信息庫則可以使用GeoIP,從dev.maxmind.com站點(diǎn)可以下載源庫。不過,IP地理信息是時(shí)常會(huì)變化的,地址庫需要定期更新。如果在技術(shù)上要求精確,則應(yīng)該考慮購買商業(yè)產(chǎn)品。

數(shù)據(jù)庫可使用關(guān)系型的MySQL,或者緩存型的redis。無論需要支持哪種數(shù)據(jù)庫,都必須在BIND的源碼中打上相應(yīng)的補(bǔ)丁,經(jīng)過編譯后才能使用。

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

基于http的重定向調(diào)度

智能DNS技術(shù)的優(yōu)點(diǎn)突出,不過也存在一些缺陷。例如URL被本地DNS解析之后,則會(huì)將IP地址緩存起來,這樣其他終端就無法得到最優(yōu)節(jié)點(diǎn)。

因此,在應(yīng)用層根據(jù)訪問協(xié)議,以重定向的方式將終端導(dǎo)向最優(yōu)節(jié)點(diǎn),就是一個(gè)很好的解決辦法。目前應(yīng)用最廣泛的,則是基于http協(xié)議的302返回碼進(jìn)行跳轉(zhuǎn)。

http是一套基于文本,且簡單、清晰、易理解的應(yīng)用層通信協(xié)議。它采用TCP協(xié)議進(jìn)行傳輸,也是目前互聯(lián)網(wǎng)上最通用的應(yīng)用協(xié)議。

相較于DNS的調(diào)度方式,http的調(diào)度可以擴(kuò)展多個(gè)維度。因?yàn)镈NS調(diào)度中只有終端IP這一個(gè)可參考依據(jù),只能按地域和運(yùn)營商來配置最優(yōu)節(jié)點(diǎn)。

而http調(diào)度可以將內(nèi)容、終端型號、用戶身份等作為參考依據(jù),實(shí)現(xiàn)更加合理的調(diào)度。例如,已經(jīng)緩存了內(nèi)容的最優(yōu)節(jié)點(diǎn)會(huì)被優(yōu)先導(dǎo)向;如果是付費(fèi)VIP用戶,則可以給其擁有最好線路的機(jī)房節(jié)點(diǎn)。

對于http全局調(diào)度服務(wù),業(yè)界一般將其稱為GSLB(Global Server Load Balancing),即全局負(fù)載均衡。從技術(shù)實(shí)現(xiàn)上來說,GSLB一般是以WEB接口作為前端,然后各個(gè)廠家會(huì)實(shí)現(xiàn)自己的全局調(diào)度業(yè)務(wù)邏輯。

CDN系統(tǒng)調(diào)度原理與技術(shù)選型

http重定向的全局調(diào)度

目前業(yè)界使用較多的是Nginx+lua的方式實(shí)現(xiàn)服務(wù)調(diào)度。

本地調(diào)度

全局調(diào)度完成的工作,是將終端導(dǎo)向到最優(yōu)的節(jié)點(diǎn)。而一個(gè)邏輯上的節(jié)點(diǎn),在物理上可能是一個(gè)機(jī)房,內(nèi)有數(shù)臺(tái)至數(shù)十臺(tái)的服務(wù)器。

在這些服務(wù)器上則部署著本地負(fù)載均衡服務(wù)、反向代理服務(wù),以及內(nèi)容緩存服務(wù)。而本地調(diào)度要做的工作就是在節(jié)點(diǎn)內(nèi)部,基于負(fù)載均衡策略,為終端與緩存服務(wù)之間構(gòu)建起一條數(shù)據(jù)傳輸通道。

本地調(diào)度技術(shù)選型

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

LVS是由章文嵩博士在1998年創(chuàng)立的開源軟件項(xiàng)目。LVS是linux Virtual Server的縮寫,它的目的是將若干臺(tái)Linux服務(wù)器通過網(wǎng)絡(luò)組建成高性能、高可用、可伸縮的集群。

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

VS/DR是直接路由方式,實(shí)現(xiàn)方式是LVS收到用戶請求后,按負(fù)載均衡策略從集群中挑選了一臺(tái)服務(wù)器,然后修改請求數(shù)據(jù)包中的目標(biāo)mac地址,將其轉(zhuǎn)發(fā)給目標(biāo)服務(wù)器進(jìn)行處理。DR模式要求集群內(nèi)的服務(wù)器都在同一個(gè)網(wǎng)段內(nèi)。

基于LVS實(shí)現(xiàn)負(fù)載均衡的典型架構(gòu),一般是兩臺(tái)安裝LVS的服務(wù)器作為雙主雙活,配置一個(gè)虛擬地址VIP。然后安裝支持OSPF協(xié)議的開源路由工具:Quagga。

Quagga的作用是將LVS主機(jī)虛擬成一臺(tái)路由器,這樣通過OSPF協(xié)議將物理路由器與兩臺(tái)LVS服務(wù)器,構(gòu)建出等價(jià)多路徑。以此實(shí)現(xiàn)LVS的雙主輪詢工作方式。

在對節(jié)點(diǎn)內(nèi)服務(wù)器探測方面,采用Keepalived開源工具。它最初就是為了LVS而設(shè)計(jì)的,可對集群內(nèi)的服務(wù)器進(jìn)行檢測,并實(shí)現(xiàn)自動(dòng)化的維護(hù)工作。

CDN系統(tǒng)調(diào)度原理與技術(shù)選型

LVS負(fù)載均衡實(shí)現(xiàn)本地調(diào)度

技術(shù)棧:LVS + Quagga + Keepalived。

結(jié)語

CDN系統(tǒng)的調(diào)度工作分為兩個(gè)部分,一是全局調(diào)度,二是本地調(diào)度。

全局調(diào)度的目標(biāo)是以最快的速度,將終端導(dǎo)向最優(yōu)節(jié)點(diǎn)。最優(yōu)的依據(jù)則是地理上接近、相同的運(yùn)營商,節(jié)點(diǎn)本身緩存有請求的內(nèi)容,以及節(jié)點(diǎn)狀況良好。

基于智能DNS技術(shù)的優(yōu)點(diǎn)是可以解決地域與運(yùn)營商的匹配,而且減少了終端與節(jié)點(diǎn)間建立連接的時(shí)間。但缺點(diǎn)是無法根據(jù)內(nèi)容與用戶特點(diǎn)進(jìn)行導(dǎo)向,難以擴(kuò)展判斷維度。

基于http重定向的方式,則可以擁有多維度的判斷依據(jù),而且也便于擴(kuò)展。其缺點(diǎn)則是響應(yīng)速度受限于中心服務(wù)的處理能力。

在實(shí)踐中可以采用兩者相結(jié)合的方式。例如DNS調(diào)度之后的節(jié)點(diǎn)如果不能滿足要求,則可以通過http的調(diào)度再匹配最優(yōu)節(jié)點(diǎn)。

本地調(diào)度的目標(biāo),是在機(jī)房內(nèi)實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)呢?fù)載均衡。使用的技術(shù)可以是硬件F5,工作在四層的LVS,或者是Nginx。

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

分享到:
標(biāo)簽:CDN
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

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

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定