一種節(jié)點負(fù)載的分布式cdn全局調(diào)度的方法
【專利摘要】本發(fā)明涉及一種節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,包括以下步驟:根據(jù)業(yè)務(wù)類型確定調(diào)度方案;根據(jù)用戶訪問調(diào)度服務(wù)器的客戶端IP進(jìn)行IP定位,確定其所在的IP位置信息;根據(jù)確定的調(diào)度方案和確定的用戶IP位置信息去匹配位置路由策略;根據(jù)位置路由策略來選擇目標(biāo)路由策略,從而確定CDN節(jié)點;根據(jù)確定CDN節(jié)點,選擇該CDN節(jié)點對應(yīng)的一臺或者多臺節(jié)點內(nèi)服務(wù)器,進(jìn)行隨機負(fù)載均衡,最終向用戶返回被選中的CDN節(jié)點服務(wù)器的地址信息,為用戶提供CDN訪問的服務(wù)。本發(fā)明可以提升CDN整體用戶服務(wù)的體驗質(zhì)量,提升CDN整體抗突發(fā)峰值流量的能力,同時通過節(jié)點的優(yōu)化調(diào)度來降低整體的運營成本。
【專利說明】一種節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息【技術(shù)領(lǐng)域】,特別是涉及一種節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法。
【背景技術(shù)】
[0002]當(dāng)今的⑶N系統(tǒng),特別是國內(nèi)互聯(lián)網(wǎng)視頻⑶N系統(tǒng)一般是通過在所需覆蓋的地區(qū)不同運營商網(wǎng)絡(luò)內(nèi)就近部署邊緣節(jié)點,為用戶提供就近服務(wù)的方式。目前有采用基于用戶訪問的DNS服務(wù)器進(jìn)行負(fù)載均衡的方式,也有基于IP調(diào)度的方式來進(jìn)行負(fù)載均衡的方式。
[0003]另外,在自運營的CDN系統(tǒng)中,一方面可能會使用自建的節(jié)點來提供差異化的優(yōu)質(zhì)服務(wù),另一方面可能會利用第三方商用CDN系統(tǒng)來解決覆蓋面的問題來提高服務(wù)的覆蓋率從而提升服務(wù)質(zhì)量。對于CDN中分布在各地的各個節(jié)點,以及接入的第三方CDN系統(tǒng),需要有一個方法能夠一方面在自建的CDN節(jié)點間做負(fù)載均衡,另一方面又能夠在自建CDN和商用CDN之間做一個平衡,在充分利用自建資源并保證服務(wù)質(zhì)量的基礎(chǔ)上來降低整體的運營成本。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是提供一種節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,能夠根據(jù)用戶來源和部署在各地的節(jié)點網(wǎng)絡(luò)負(fù)載的情況進(jìn)行動態(tài)地調(diào)整,從而達(dá)到對用戶訪問進(jìn)行CDN節(jié)點優(yōu)先路由選擇,實現(xiàn)各CDN節(jié)點間的負(fù)載均衡的目的,從而提升用戶訪問服務(wù)質(zhì)量和降低⑶N整體運營成本。
[0005]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:提供一種節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,包括以下步驟:
[0006]( I)根據(jù)業(yè)務(wù)類型確定調(diào)度方案;
[0007](2)根據(jù)用戶訪問調(diào)度服務(wù)器的客戶端IP進(jìn)行IP定位,確定其所在的IP位置信息;
[0008](3)根據(jù)確定的調(diào)度方案和確定的用戶IP位置信息去匹配位置路由策略;
[0009](4)根據(jù)位置路由策略來選擇目標(biāo)路由策略,從而確定⑶N節(jié)點;
[0010](5)根據(jù)確定CDN節(jié)點,選擇該CDN節(jié)點對應(yīng)的一臺或者多臺節(jié)點內(nèi)服務(wù)器,進(jìn)行隨機負(fù)載均衡,最終向用戶返回被選中的CDN節(jié)點服務(wù)器的地址信息,為用戶提供CDN訪問的服務(wù)。
[0011]所述步驟(I)包括以下子步驟:
[0012](11)建立兩個映射表,第一個映射表是內(nèi)容對應(yīng)調(diào)度方案的映射表,第二個映射表是頻道對應(yīng)調(diào)度方案的映射表;
[0013](12)根據(jù)用戶輸入的內(nèi)容查找第一個映射表,確定調(diào)度方案,如果沒有查到,就根據(jù)用戶輸入的頻道查找第二個映射表,確定調(diào)度方案。
[0014]所述步驟(2)包括以下子步驟:[0015](21)建立兩個映射表,第一個映射表是位置表,用于存儲基礎(chǔ)的位置信息,每個位置信息包含位置ID、運營商、省份和城市四個字段;第二個映射表是IP表,用于存儲IP段和位置ID的映射關(guān)系,包含IP,MASK,位置ID三個字段;
[0016](22)在匹配的時候,根據(jù)客戶端IP,按照IP庫的最長匹配方法,在IP表中查找對應(yīng)的位置ID,然后根據(jù)查找到的位置ID,得到該用戶所在的運營商、省份、城市的信息,并用“運營商.省份.城市”來表示成IP位置信息。
[0017]所述步驟(3)包括以下子步驟:
[0018](31)建立一個位置路由表,包含位置路由ID、IP位置通配符、調(diào)度方案三個字段;
[0019](32)根據(jù)IP位置信息和調(diào)度方案按照通配符匹配的方式進(jìn)行模糊匹配,按照通配符從短到長匹配算法依次匹配出一個或者多個位置路由ID。
[0020]所述步驟(32)中對整個位置路由表進(jìn)行加載,并建立四層樹狀結(jié)構(gòu),其中,第一層為root層,第二層為“運營商”層,第三層為“省份”層,第四層為“城市”層,root層僅有一個節(jié)點,該節(jié)點表示匹配任何IP位置,剩下的每一層具有多個節(jié)點,節(jié)點按照節(jié)點的Key值根據(jù)字典序方式排列。
[0021]所述步驟(4)中,一個位置路由策略能夠匹配一條或者多條目標(biāo)路由策略,當(dāng)匹配出多條目標(biāo)路由策略時,多條目標(biāo)路由策略根據(jù)權(quán)重、優(yōu)先級、時間段參數(shù)、以及當(dāng)前節(jié)點的網(wǎng)絡(luò)帶寬可用容量來進(jìn)行篩選,從而確定首選CDN節(jié)點。
[0022]所述步驟(4)包括以下子步驟:
[0023](41)創(chuàng)建目標(biāo)路由表,該表的字段如下:位置路由ID、生效起止時間、優(yōu)先級、權(quán)重;
[0024](42 )創(chuàng)建⑶N節(jié)點表,該表的字段如下:CDN節(jié)點ID,多個⑶N目標(biāo)URL地址,當(dāng)前帶寬可用容量,當(dāng)前節(jié)點需要被分流的百分比,以及節(jié)點的可用狀態(tài);
[0025](43)根據(jù)位置路由ID得到所有對應(yīng)的目標(biāo)路由記錄,并根據(jù)其⑶N節(jié)點ID得到CDN節(jié)點表中的相關(guān)參數(shù);
[0026](44)對目標(biāo)路由記錄按照時間段、可用狀態(tài)進(jìn)行篩選,過濾掉節(jié)點當(dāng)前不可用的記錄;
[0027](45)對于剩余的可用目標(biāo)路由記錄按照優(yōu)先級進(jìn)行分組,按照優(yōu)先級作為分組號進(jìn)行排序;
[0028](46)對分組內(nèi)的目標(biāo)路由記錄,根據(jù)其權(quán)重和可用容量百分比,分流百分比三個參數(shù),來進(jìn)行選擇,如果可用容量不足的目標(biāo)路由記錄則進(jìn)入溢出表;
[0029](47)如果當(dāng)前分組沒有可用的記錄,并且當(dāng)前分組不是最后一個分組,則在溢出表中將每條記錄的分流值進(jìn)行累加,計算得到平均值后作為權(quán)重值,進(jìn)行隨機選擇,確定是在溢出表還是下一個分組中繼續(xù)選擇目標(biāo)路由記錄;如果當(dāng)前分組沒有可用的服務(wù)器,并且當(dāng)前分組已經(jīng)是最后的分組,則對溢出表中的記錄按照每條記錄以權(quán)重X (1-分流百分t匕)來作為權(quán)重隨機選擇的權(quán)重參數(shù),在溢出表內(nèi)進(jìn)行隨機選擇,選中的記錄返回CDN節(jié)點ID0
[0030]所述步驟(5)中如果沒有可用的⑶N節(jié)點能夠匹配到,則返回步驟(4)獲取下一個位置路由策略。
[0031]所述步驟(5)包括以下子步驟:[0032](51)根據(jù)⑶N節(jié)點ID,找到對應(yīng)的⑶N記錄;
[0033](52)對⑶N記錄中一個或者多個URL作隨機選擇,進(jìn)行負(fù)載均衡,最后將選中的URL返回。
[0034]以下對一些名詞進(jìn)行解釋:
[0035]頻道:作為區(qū)分不同業(yè)務(wù)的一個標(biāo)識,如視頻VOD中的某個“電影頻道”或者“電視
劇頻道”等。
[0036]內(nèi)容:在頻道中提供的各項服務(wù),如視頻VOD中的某個影片。
[0037]IP位置:即根據(jù)用戶端網(wǎng)絡(luò)接入的IP,用于定位用戶所處的運營商,所在省份和城市的位置,為了區(qū)別于物理位置,這個位置這里定義為IP位置,并用“運營商.省份.城市”三段式來表示。
[0038]CDN節(jié)點:即分布于各個運營商網(wǎng)絡(luò)內(nèi)不同城市的內(nèi)容分發(fā)加速的邊緣節(jié)點,或者是引入的第三方商用CDN系統(tǒng)。CDN節(jié)點之間將根據(jù)既定的相關(guān)策略進(jìn)行負(fù)載均衡,在用戶服務(wù)質(zhì)量和系統(tǒng)運營成本上進(jìn)行一個權(quán)衡。
[0039]調(diào)度策略:本方法對整個調(diào)度策略從邏輯上劃分為三個層次:1.調(diào)度方案;2.位置路由策略;3.目標(biāo)路由策略。以下分別對這三個進(jìn)行說明:
[0040]其中,調(diào)度方案是一套由位置路由策略、目標(biāo)路由策略組成的調(diào)度的方案。它針對不同的內(nèi)容或者不同的頻道來提供不同的調(diào)度方案,從而能夠根據(jù)業(yè)務(wù)類型來提供差異化服務(wù)。
[0041]其中,位置路由策略是根據(jù)用戶所在IP位置(包括運營商、省份、城市)來確定其采用哪一組目標(biāo)路由策略來選擇目標(biāo)CDN節(jié)點。
[0042]其中,目標(biāo)路由策略是根據(jù)特定的用戶IP位置,當(dāng)前時間、⑶N節(jié)點的權(quán)重、優(yōu)先級、網(wǎng)絡(luò)帶寬的空閑狀況來進(jìn)行優(yōu)化選擇,從而實現(xiàn)在多個CDN節(jié)點之間進(jìn)行負(fù)載均衡,提升帶寬利用率。
[0043]有益效果
[0044]由于采用了上述的技術(shù)方案,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下的優(yōu)點和積極效果:本發(fā)明采用基于靜態(tài)IP庫進(jìn)行IP調(diào)度的方式,并通過和流量監(jiān)控系統(tǒng)進(jìn)行對接,利用實現(xiàn)配置好的調(diào)度策略來實現(xiàn)對用戶的就近路由選擇,同時根據(jù)各個節(jié)點的流量變化情況來實現(xiàn)自建CDN節(jié)點以及自建CDN和商用CDN之間的動態(tài)的負(fù)載平衡,從而實現(xiàn)資源充分有效的利用的目的。
【專利附圖】
【附圖說明】
[0045]圖1是本發(fā)明的流程圖;
[0046]圖2是匹配位置路由策略時建立的數(shù)據(jù)結(jié)構(gòu)示意圖。
【具體實施方式】
[0047]下面結(jié)合具體實施例,進(jìn)一步闡述本發(fā)明。應(yīng)理解,這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權(quán)利要求書所限定的范圍。[0048]本發(fā)明的實施方式涉及一種節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,包括以下步驟:根據(jù)業(yè)務(wù)類型確定調(diào)度方案;根據(jù)用戶訪問調(diào)度服務(wù)器的客戶端IP進(jìn)行IP定位,確定其所在的IP位置信息;根據(jù)確定的調(diào)度方案和確定的用戶IP位置信息去匹配位置路由策略;根據(jù)位置路由策略來選擇目標(biāo)路由策略,從而確定CDN節(jié)點;根據(jù)確定CDN節(jié)點,選擇該CDN節(jié)點對應(yīng)的一臺或者多臺節(jié)點內(nèi)服務(wù)器,進(jìn)行隨機負(fù)載均衡,最終向用戶返回被選中的⑶N節(jié)點服務(wù)器的地址信息,為用戶提供⑶N訪問的服務(wù)。本發(fā)明可以提升⑶N整體用戶服務(wù)的體驗質(zhì)量,提升CDN整體抗突發(fā)峰值流量的能力,同時通過節(jié)點的優(yōu)化調(diào)度來降低整體的運營成本。
[0049]如圖1所示,以下對實現(xiàn)方法進(jìn)行具體描述。
[0050](一)根據(jù)用戶訪問的內(nèi)容、頻道確定其對應(yīng)采用哪一套調(diào)度方案,即根據(jù)業(yè)務(wù)類型確定調(diào)度方案。如果無法成功匹配相應(yīng)的調(diào)度方案,則執(zhí)行步驟(六)。
[0051]詳細(xì)實現(xiàn)如下:
[0052]輸入:內(nèi)容ID
[0053]頻道ID
[0054]輸出:調(diào)度方案ID
[0055]實現(xiàn)方法:
[0056]首先,建立兩個映射表,第一個是內(nèi)容ID_>調(diào)度方案ID的映射表,第二個是頻道ID_>調(diào)度方案ID的映射表。
[0057]然后,根據(jù)輸入的內(nèi)容ID首先查找第一個映射表,如果沒有查到,就根據(jù)輸入的頻道ID查找第二個映射表,如果還是沒有查到,則執(zhí)行步驟(六)。
[0058](二)根據(jù)用戶訪問調(diào)度服務(wù)器的客戶端IP進(jìn)行IP定位,確定其所在的IP位置信息,包括運營商網(wǎng)絡(luò)和省份城市信息(根據(jù)IP庫的精度而定)。IP位置信息用“運營商.省份.城市”三段式來表示。如果無法成功匹配用戶的IP位置信息,則執(zhí)行步驟(六)。
[0059]詳細(xì)實現(xiàn)如下:
[0060]輸入:客戶端IP
[0061]輸出:IP位置信息
[0062]實現(xiàn)方法:
[0063]首先,建立兩個映射表,第一個是位置表,存儲基礎(chǔ)的位置信息,每個位置信息包含如下字段,位置ID、運營商、省份、城市;第二個表是IP表,存儲IP段和位置ID的映射關(guān)系,包含如下字段,IP,MASK,位置ID幾個字段。
[0064]其次,在匹配的時候,根據(jù)客戶端IP,按照IP庫的最長匹配方法,在IP表中查找對應(yīng)的位置ID,然后根據(jù)查找到的位置ID,得到該用戶所在的運營商、省份、城市的信息,并用“運營商.省份.城市”來表示成IP位置信息。
[0065]在進(jìn)行IP庫的查找的時候,可以預(yù)先將IP庫緩存的調(diào)度服務(wù)器的內(nèi)存中,在內(nèi)存中采用相關(guān)高速查找算法進(jìn)行快速的匹配查找,從而避免因為IP庫查詢性能差導(dǎo)致系統(tǒng)瓶頸的發(fā)生。
[0066](三)根據(jù)步驟(一)確定的調(diào)度方案,以及步驟(二)確定的用戶IP位置信息去匹配位置路由策略。匹配的時候采用通配符匹配的方式,通配符規(guī)則允許最右邊的位置信息用*表示,如用戶的網(wǎng)絡(luò)位置為“浙江杭州電信”,可以用“電信.浙江.杭州”的匹配規(guī)則來匹配,也可以用“電信.浙江.*”來匹配,也可以用“電信.*”來匹配,甚或用來匹配。根據(jù)最長優(yōu)先匹配算法,從長到短匹配依次匹配出多個位置路由ID。以下步驟(四)和步驟(五)根據(jù)匹配到的多個位置路由策略ID按照其匹配長度依次執(zhí)行。
[0067]詳細(xì)實現(xiàn)如下:
[0068]輸入:IP位置信息
[0069]調(diào)度方案ID
[0070]輸出:位置路由ID組
[0071]實現(xiàn)方法:
[0072]首先,建立一個位置路由表,包含,位置路由ID、IP位置通配符、調(diào)度方案ID幾個字段。
[0073]其次,根據(jù)IP位置信息和調(diào)度方案ID采用以上介紹的按照通配符匹配的方式進(jìn)行模糊匹配,按照最長有限匹配算法,從長到短依次匹配出多個位置路由ID。
[0074]為了加速通配符匹配的性能,可以通過將整個位置路由表加載到內(nèi)存中,避免數(shù)據(jù)庫的查詢來解決。另外,通過在內(nèi)存中建立如圖2的數(shù)據(jù)結(jié)構(gòu),有助于性能進(jìn)一步提升。
[0075]如圖2所示,建立四層樹狀結(jié)構(gòu),第一層為root層,第二層為“運營商”層,第三層為“省份”層,第四層為“城市”層。其中root層僅有一個節(jié)點,該節(jié)點表示匹配任何IP位置,剩下的每一層具有多個節(jié)點,節(jié)點按照節(jié)點的Key值根據(jù)字典序方式排列,便于進(jìn)行快速的二分查找。其中帶雙邊框的方格代表是一個“可識別節(jié)點”,就是說一旦查找的時候遇到這個節(jié)點,可以認(rèn)為已經(jīng)匹配,如果該節(jié)點沒有子節(jié)點或者在子節(jié)點上匹配失敗,則返回當(dāng)前匹配的節(jié)點。
[0076]建立這個數(shù)據(jù)結(jié)構(gòu)的步驟如下:
[0077]A)首先創(chuàng)建root層的節(jié)點,設(shè)置其為非“可識別節(jié)點”。
[0078]B)針對每個需要添加的通配符匹配規(guī)則循環(huán)執(zhí)行以下步驟。
[0079]C)獲取下一個通配符匹配規(guī)則,進(jìn)行分析,將其依次拆分成“運營商”、“省份”、“城市”三個段或者小于三個段,對于最右一個段為通配符*的,則忽略之。
[0080]D)如果當(dāng)前的通配符匹配規(guī)則沒有“運營商”段,則設(shè)置root層的節(jié)點為“可識別節(jié)點”(即該規(guī)則是“*”,匹配所有IP位置),并跳轉(zhuǎn)到步驟C)進(jìn)行執(zhí)行。
[0081]E)如果當(dāng)前的通配符規(guī)則有“運營商”段,則通過root層的節(jié)點,得到指向“運營商”層的指針,如果該指針為空,則創(chuàng)建一個新的“運營商”層對象,并將其關(guān)聯(lián)到root層,作為root層的子節(jié)點。
[0082]F)在“運營商”層中查找當(dāng)前的運營商段,如果查找到匹配的節(jié)點,則跳轉(zhuǎn)到步驟g)進(jìn)行執(zhí)行。如果沒有查找到匹配的節(jié)點,則創(chuàng)建一個新的“運營商”節(jié)點按照字典序插入到該“運營商”層中。
[0083]G)如果當(dāng)前的通配符匹配規(guī)則沒有“省份”段,則設(shè)置以上查找到的“運營商”節(jié)點或者剛剛創(chuàng)建的“運營商”節(jié)點為“可識別節(jié)點”。
[0084]H)依次類推,直到通配符匹配規(guī)則的“省份”、“城市”幾個段設(shè)置完畢,跳轉(zhuǎn)到步驟C)繼續(xù)執(zhí)行。
[0085]查找的步驟如下:
[0086]A)首先獲取root層的節(jié)點,判斷該節(jié)點是否為“可識別節(jié)點”,如果是“可識別節(jié)點”,則將該節(jié)點對應(yīng)的“位置路由ID”添加到輸出列表中。
[0087]B)根據(jù)root層節(jié)點得到指向“運營商層”的指針。
[0088]C)如果“運營商層”指針為空,則跳轉(zhuǎn)到步驟E)。否則,獲取待匹配的IP位置中的“運營商”字段,在“運營商層”中進(jìn)行二分查找,如果沒有查找到,則跳轉(zhuǎn)到步驟E);如果查找到,則檢查該“運營商”節(jié)點是否為“可識別節(jié)點”,如果是可識別節(jié)點,則將該節(jié)點對應(yīng)的“位置路由ID”加入到輸出列表中。然后得到該“運營商”節(jié)點對應(yīng)的下層“省份層”的指針。
[0089]D)依次類推,直到匹配到“城市層”,或者匹配失敗。
[0090]E)返回輸出列表中匹配到的一個或者多個位置路由ID。
[0091](四)根據(jù)步驟(三)確定的位置路由策略ID,來選擇目標(biāo)路由策略,一個位置路由策略ID可以匹配一條或者多條目標(biāo)路由策略,多條目標(biāo)路由策略根據(jù)權(quán)重、優(yōu)先級、時間段參數(shù)、以及當(dāng)前節(jié)點的網(wǎng)絡(luò)帶寬可用容量來進(jìn)行篩選,從而確定首選CDN節(jié)點。如果沒有可用的目標(biāo)路由策略可以匹配到,則獲取下一個位置路由策略ID繼續(xù)執(zhí)行本步驟,如果沒有更多的位置路由策略ID則執(zhí)行步驟(六)。
[0092]詳細(xì)實現(xiàn)如下:
[0093]輸入:位置路由ID
[0094]輸出:CDN節(jié)點ID
[0095]實現(xiàn)方法:
[0096]首先,創(chuàng)建目標(biāo)路由表,該表的字段如下:位置路由ID、生效起止時間、優(yōu)先級、權(quán)重。
[0097]其次,創(chuàng)建⑶N節(jié)點表,該表的字段如下:CDN節(jié)點ID,多個⑶N目標(biāo)URL地址,當(dāng)前帶寬可用容量,當(dāng)前節(jié)點需要被分流的百分比,以及節(jié)點的可用狀態(tài)。其中最后三個字段可以通過監(jiān)控系統(tǒng)通過定時采集來獲取各個CDN節(jié)點的狀態(tài),并將采集到的指標(biāo)進(jìn)行相關(guān)運算后更新進(jìn)來。
[0098]篩選的流程如下:
[0099]A)根據(jù)位置路由ID,得到所有對應(yīng)的目標(biāo)路由記錄,并根據(jù)其⑶N節(jié)點ID得到CDN節(jié)點表中的相關(guān)參數(shù),包括當(dāng)前帶寬可用容量以及可用狀態(tài)等。
[0100]B)對目標(biāo)路由記錄按照時間段、可用狀態(tài)進(jìn)行篩選,過濾掉節(jié)點當(dāng)前不可用的記錄。
[0101]C)對于剩余的可用目標(biāo)路由記錄按照優(yōu)先級進(jìn)行分組,按照優(yōu)先級作為分組號進(jìn)行排序,對于每個分組執(zhí)行以下操作。
[0102]D)獲取下一個分組,對分組內(nèi)的目標(biāo)路由記錄,根據(jù)其權(quán)重和可用容量百分比,分流百分比三個參數(shù),來進(jìn)行選擇。如果可用容量大于0,則根據(jù)權(quán)重X可用容量百分比的值作為權(quán)重隨機選擇的權(quán)重參數(shù),在本組內(nèi)進(jìn)行隨機選擇。如果可用容量等于0,則將當(dāng)前目標(biāo)路由記錄放入溢出表中不再參與本組的按權(quán)重隨機選擇。如果有可用的記錄,則返回該記錄對應(yīng)的⑶N節(jié)點ID。
[0103]E)如果當(dāng)前分組沒有可用的記錄,并且當(dāng)前分組不是最后一個分組,則在溢出表中將每條記錄的分流值進(jìn)行累加,計算得到平均值后作為權(quán)重值,進(jìn)行隨機選擇,確定是在溢出表還是下一個分組中繼續(xù)選擇目標(biāo)路由記錄;如果當(dāng)前分組沒有可用的服務(wù)器,并且當(dāng)前分組已經(jīng)是最后的分組,則對溢出表執(zhí)行步驟F)。
[0104]F)如果選中的是溢出表,則對溢出表中的記錄按照每條記錄以權(quán)重X (1-分流百分比)來作為權(quán)重隨機選擇的權(quán)重參數(shù),在溢出表內(nèi)進(jìn)行隨機選擇,選中的記錄返回CDN節(jié)點ID。
[0105]G)如果選中的是下一個分組,則跳轉(zhuǎn)到步驟D)繼續(xù)執(zhí)行。
[0106]在這里,通過溢出表的建立,能夠平滑控制不同優(yōu)先級的CDN節(jié)點平滑地將流量從高到低進(jìn)行溢出,從而實現(xiàn)⑶N節(jié)點的“切峰”處理,提升⑶N節(jié)點的利用率。
[0107](五)根據(jù)確定的CDN節(jié)點ID,選擇該節(jié)點對應(yīng)的一臺或者多臺節(jié)點內(nèi)服務(wù)器,進(jìn)行隨機負(fù)載均衡,最終向用戶返回被選中的CDN節(jié)點服務(wù)器的HTTP地址,為用戶提供CDN訪問的服務(wù)。如果沒有可用的CDN節(jié)點可以匹配到,則獲取下一個位置路由策略的ID繼續(xù)從步驟(四)開始執(zhí)行,如果沒有更多的位置路由策略ID則執(zhí)行步驟(六)。
[0108]詳細(xì)實現(xiàn)如下:
[0109]輸入:CDN節(jié)點ID
[0110]輸出:目標(biāo)節(jié)點的URL
[0111]實現(xiàn)方法:
[0112]A)根據(jù)⑶N節(jié)點ID,找到對應(yīng)的⑶N記錄。
[0113]B)對⑶N記錄中一個或者多個URL作隨機選擇,進(jìn)行負(fù)載均衡,最后將選中的URL返回。
[0114](六)如果沒有任何⑶N節(jié)點被選中,則返回出錯信息。
[0115]不難發(fā)現(xiàn),本發(fā)明采用基于靜態(tài)IP庫進(jìn)行IP調(diào)度的方式,提供了多節(jié)點之間的動態(tài)負(fù)載均衡和容災(zāi)備份的功能。根據(jù)節(jié)點優(yōu)先級和權(quán)重進(jìn)行動態(tài)路由選擇的功能,根據(jù)節(jié)點容量情況逐級降級切峰的方式緩解流量大幅度鋸齒狀波動。本發(fā)明可以同時提供多套調(diào)度方案,根據(jù)訪問的內(nèi)容和頻道來實施不同的調(diào)度方案,便于對不同的內(nèi)容實施不同的調(diào)度策略以便對不同的業(yè)務(wù)提供差異化的服務(wù)。
【權(quán)利要求】
1.一種節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,其特征在于,包括以下步驟: (1)根據(jù)業(yè)務(wù)類型確定調(diào)度方案; (2)根據(jù)用戶訪問調(diào)度服務(wù)器的客戶端IP進(jìn)行IP定位,確定其所在的IP位置信息; (3)根據(jù)確定的調(diào)度方案和確定的用戶IP位置信息去匹配位置路由策略; (4)根據(jù)位置路由策略來選擇目標(biāo)路由策略,從而確定CDN節(jié)點; (5)根據(jù)確定CDN節(jié)點,選擇該CDN節(jié)點對應(yīng)的一臺或者多臺節(jié)點內(nèi)服務(wù)器,進(jìn)行隨機負(fù)載均衡,最終向用戶返回被選中的CDN節(jié)點服務(wù)器的地址信息,為用戶提供CDN訪問的服務(wù)。
2.根據(jù)權(quán)利要求1所述的節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,其特征在于,所述步驟(I)包括以下子步驟: (11)建立兩個映射表,第一個映射表是內(nèi)容對應(yīng)調(diào)度方案的映射表,第二個映射表是頻道對應(yīng)調(diào)度方案的映射表; (12)根據(jù)用戶輸入的內(nèi)容查找第一個映射表,確定調(diào)度方案,如果沒有查到,就根據(jù)用戶輸入的頻道查找第二個映射表,確定調(diào)度方案。
3.根據(jù)權(quán)利要求1所述的節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,其特征在于,所述步驟(2)包括以下子步驟: (21)建立兩個映射表,第一個映射表是位置表,用于存儲基礎(chǔ)的位置信息,每個位置信息包含位置ID、運營商、省份和城市四個字段;第二個映射表是IP表,用于存儲IP段和位置ID的映射關(guān)系,包含IP,MASK,位置ID三個字段; (22)在匹配的時候,根據(jù)客戶端IP,按照IP庫的最長匹配方法,在IP表中查找對應(yīng)的位置ID,然后根據(jù)查找到的位置ID,得到該用戶所在的運營商、省份、城市的信息,并用“運營商.省份.城市”來表不成IP位置信息。
4.根據(jù)權(quán)利要求1所述的節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,其特征在于,所述步驟(3)包括以下子步驟:· (31)建立一個位置路由表,包含位置路由ID、IP位置通配符、調(diào)度方案三個字段; (32)根據(jù)IP位置信息和調(diào)度方案按照通配符匹配的方式進(jìn)行模糊匹配,按照通配符從短到長匹配算法依次匹配出一個或者多個位置路由ID。
5.根據(jù)權(quán)利要求4所述的節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,其特征在于,所述步驟(32)中對整個位置路由表進(jìn)行加載,并建立四層樹狀結(jié)構(gòu),其中,第一層為root層,第二層為“運營商”層,第三層為“省份”層,第四層為“城市”層,root層僅有一個節(jié)點,該節(jié)點表示匹配任何IP位置,剩下的每一層具有多個節(jié)點,節(jié)點按照節(jié)點的Key值根據(jù)字典序方式排列。
6.根據(jù)權(quán)利要求1所述的節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,其特征在于,所述步驟(4)中,一個位置路由策略能夠匹配一條或者多條目標(biāo)路由策略,當(dāng)匹配出多條目標(biāo)路由策略時,多條目標(biāo)路由策略根據(jù)權(quán)重、優(yōu)先級、時間段參數(shù)、以及當(dāng)前節(jié)點的網(wǎng)絡(luò)帶寬可用容量來進(jìn)行篩選,從而確定首選CDN節(jié)點。
7.根據(jù)權(quán)利要求6所述的節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,其特征在于,所述步驟(4)包括以下子步驟: (41)創(chuàng)建目標(biāo)路由表,該表的字段如下:位置路由ID、生效起止時間、優(yōu)先級、權(quán)重;(42)創(chuàng)建⑶N節(jié)點表,該表的字段如下ADNfAID,多個⑶N目標(biāo)URL地址,當(dāng)前帶寬可用容量,當(dāng)前節(jié)點需要被分流的百分比,以及節(jié)點的可用狀態(tài); (43)根據(jù)位置路由ID得到所有對應(yīng)的目標(biāo)路由記錄,并根據(jù)其⑶N節(jié)點ID得到⑶N節(jié)點表中的相關(guān)參數(shù); (44)對目標(biāo)路由記錄按照時間段、可用狀態(tài)進(jìn)行篩選,過濾掉節(jié)點當(dāng)前不可用的記錄; (45)對于剩余的可用目標(biāo)路由記錄按照優(yōu)先級進(jìn)行分組,按照優(yōu)先級作為分組號進(jìn)行排序; (46)對分組內(nèi)的目標(biāo)路由記錄,根據(jù)其權(quán)重和可用容量百分比,分流百分比三個參數(shù),來進(jìn)行選擇; (47)如果當(dāng)前分組沒有可用的記錄,并且當(dāng)前分組不是最后一個分組,則在溢出表中將每條記錄的分流值進(jìn)行累加,計算得到平均值后作為權(quán)重值,進(jìn)行隨機選擇,確定是在溢出表還是下一個分組中繼續(xù)選擇目標(biāo)路由記錄;如果當(dāng)前分組沒有可用的服務(wù)器,并且當(dāng)前分組已經(jīng)是最后的分組,則對溢出表中的記錄按照每條記錄以權(quán)重X (1-分流百分比)來作為權(quán)重隨機選擇的權(quán)重參數(shù),在溢出表內(nèi)進(jìn)行隨機選擇,選中的記錄返回CDN節(jié)點ID。
8.根據(jù)權(quán)利要求6所述的節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,其特征在于,所述步驟(5)中如果沒有可用的CDN節(jié)點能夠匹配到,則返回步驟(4)獲取下一個位置路由策略。
9.根據(jù)權(quán)利要求1所述的節(jié)點負(fù)載的分布式CDN全局調(diào)度的方法,其特征在于,所述步驟(5)包括以下子步驟 : (51)根據(jù)⑶N節(jié)點ID,找到對應(yīng)的⑶N記錄; (52)對CDN記錄中一個或者多個URL作隨機選擇,進(jìn)行負(fù)載均衡,最后將選中的URL返回。
【文檔編號】H04L12/701GK103825837SQ201410056700
【公開日】2014年5月28日 申請日期:2014年2月19日 優(yōu)先權(quán)日:2014年2月19日
【發(fā)明者】王磊 申請人:上海視云網(wǎng)絡(luò)科技有限公司