一種基于短url查詢的cdn節(jié)點(diǎn)跳轉(zhuǎn)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及內(nèi)容分發(fā)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種基于短URL查詢的CDN節(jié)點(diǎn)跳 轉(zhuǎn)方法及系統(tǒng)。
【背景技術(shù)】
[0002] 統(tǒng)一資源定位符(Uniform Resource Locator,URL),也被稱為網(wǎng)頁(yè)地址,是因特 網(wǎng)上標(biāo)準(zhǔn)的資源的地址。URL的一般形式可以是:〈URL的訪問(wèn)方式>://〈主機(jī) >:〈端口 >/〈 路徑>http://www. wsview. com/login. action:^1,有的技術(shù)負(fù)口果i方問(wèn)一個(gè)視步頁(yè)文件的url 包括的字符數(shù)量較多,有字?jǐn)?shù)限制的使用環(huán)境下不便于使用和傳播,完整的URL會(huì)占用較 大的篇幅,另外現(xiàn)在一般視頻存放都會(huì)用到CDN加速技術(shù),現(xiàn)用的處理方式是當(dāng)用戶提交 一個(gè)播放請(qǐng)求后,視頻服務(wù)器通過(guò)片源名來(lái)檢索查看CDN節(jié)點(diǎn)磁盤本地是否有視頻源如果 沒(méi)有再反饋;這種解決方案如果點(diǎn)擊量很大的話會(huì)有很多時(shí)間消耗在磁盤I 〇讀取上,使 得視頻查詢及CDN節(jié)點(diǎn)跳轉(zhuǎn)速度較慢。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明實(shí)施例的目的在于提出一種基于短URL查詢的⑶N節(jié)點(diǎn)跳轉(zhuǎn)方法,旨在解 決現(xiàn)有技術(shù)CDN節(jié)點(diǎn)視頻查詢時(shí)通過(guò)片源名稱來(lái)檢索查看CDN節(jié)點(diǎn)磁盤本地視頻源,當(dāng)視 頻服務(wù)器點(diǎn)擊量時(shí)很多時(shí)間消耗在磁盤I 〇讀取上,使得視頻查詢及CDN節(jié)點(diǎn)跳轉(zhuǎn)速度較 慢的問(wèn)題。
[0004] 本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種基于短URL查詢的CDN節(jié)點(diǎn)跳轉(zhuǎn)方法,所述方法 包括:
[0005] 接收用戶通過(guò)客戶端發(fā)送的視頻短URL的播放請(qǐng)求;
[0006] 查詢分布式服務(wù)器,并定位所述短URL在分布式服務(wù)器中的存儲(chǔ)行主鍵;
[0007] 根據(jù)分布式服務(wù)器中存儲(chǔ)的所述短URL的存儲(chǔ)行主鍵、時(shí)間戳和用戶IP,查詢離 用戶IP最近的地域節(jié)點(diǎn),找到所述短URL對(duì)應(yīng)的長(zhǎng)URL ;
[0008] 判斷最近CDN結(jié)點(diǎn)中是否查到存儲(chǔ)有所述短URL對(duì)應(yīng)的長(zhǎng)URL,若是,則
[0009] 將所述對(duì)應(yīng)的長(zhǎng)URL返回給客戶端;并將所述最近⑶N結(jié)點(diǎn)對(duì)應(yīng)存儲(chǔ)的長(zhǎng)URL訪 問(wèn)計(jì)數(shù)器加1 ;
[0010] 判斷所述計(jì)數(shù)器是否超出指定的閾值,若超出閾值,則判斷所述最近CDN結(jié)點(diǎn)是 否為底級(jí)節(jié)點(diǎn),若是,則不做處理,結(jié)束;若為非底級(jí)節(jié)點(diǎn),則結(jié)點(diǎn)下沉生成下一級(jí)節(jié)點(diǎn)的長(zhǎng) URL并存儲(chǔ)到分布式服務(wù)器,結(jié)束。
[0011] 所述基于短URL查詢的⑶N節(jié)點(diǎn)跳轉(zhuǎn)方法,
[0012] 若在最近CDN結(jié)點(diǎn)中沒(méi)有查到存儲(chǔ)有所述短URL對(duì)應(yīng)的長(zhǎng)URL,則
[0013] 跳轉(zhuǎn)到所述相應(yīng)地域的上一級(jí)節(jié)點(diǎn)查詢所述短URL對(duì)應(yīng)的長(zhǎng)URL ;
[0014] 判斷在相應(yīng)地域的上一級(jí)節(jié)點(diǎn)中是否查詢到存儲(chǔ)有所述短URL對(duì)應(yīng)的長(zhǎng)URL,若 否,則返回步驟"跳轉(zhuǎn)到所述相應(yīng)地域的上一級(jí)節(jié)點(diǎn)查詢所述短URL對(duì)應(yīng)的長(zhǎng)URL",若是, 則
[0015] 將查詢到的所述相應(yīng)地域上一級(jí)節(jié)點(diǎn)中對(duì)應(yīng)存儲(chǔ)的長(zhǎng)URL返回給客戶端,并將相 應(yīng)地域節(jié)點(diǎn)中存儲(chǔ)的長(zhǎng)URL訪問(wèn)計(jì)數(shù)器加1 ;
[0016] 判斷所述計(jì)數(shù)器是否超出指定的閾值,若超出,則結(jié)點(diǎn)下沉生成下一級(jí)節(jié)點(diǎn)的長(zhǎng) URL并存儲(chǔ)到分布式服務(wù)器,結(jié)束。
[0017] 本發(fā)明實(shí)施例的另一目的在于提出一種基于短URL查詢的⑶N節(jié)點(diǎn)跳轉(zhuǎn)系統(tǒng),所 述系統(tǒng)包括至少一個(gè)用戶、分布式數(shù)據(jù)庫(kù)、至少一個(gè)⑶N節(jié)點(diǎn),
[0018] 所述用戶用于通過(guò)客戶端發(fā)送的視頻短URL的播放請(qǐng)求;所述播放請(qǐng)求包括短 URL、用戶名、用戶IP ;
[0019] 所述分布式數(shù)據(jù)庫(kù)用于存儲(chǔ)用戶發(fā)送的播放請(qǐng)求中的短URL、各CDN節(jié)點(diǎn)中的視 頻實(shí)際播放器地址長(zhǎng)URL、各CDN節(jié)點(diǎn)中的視頻訪問(wèn)計(jì)數(shù),并用于根據(jù)用戶請(qǐng)求中的短URL 和用戶IP查詢離用戶最近的CDN節(jié)點(diǎn)中存儲(chǔ)的所述短URL對(duì)應(yīng)的、訪問(wèn)計(jì)數(shù)沒(méi)有超出指定 閾值的視頻實(shí)際播放器地址長(zhǎng)URL ;
[0020] CDN節(jié)點(diǎn),用于存儲(chǔ)視頻播放的源文件,其按照地域劃分為若干級(jí)別,每個(gè)級(jí)別包 含至少一個(gè)節(jié)點(diǎn),頂級(jí)為源站。
[0021 ] 所述的基于短URL查詢的⑶N節(jié)點(diǎn)跳轉(zhuǎn)系統(tǒng),
[0022] 所述分布式數(shù)據(jù)庫(kù)還包括:
[0023] 查詢模塊,用于根據(jù)分布式服務(wù)器中存儲(chǔ)的所述短URL的存儲(chǔ)行主鍵、時(shí)間戳和 用戶IP,查詢離用戶IP最近的地域節(jié)點(diǎn);判斷最近CDN結(jié)點(diǎn)中是否查到存儲(chǔ)有所述短URL 對(duì)應(yīng)的長(zhǎng)URL,若是,則將所述對(duì)應(yīng)的長(zhǎng)URL返回給客戶端;并通知最近CDN結(jié)點(diǎn)對(duì)應(yīng)存儲(chǔ) 的長(zhǎng)URL訪問(wèn)計(jì)數(shù)器加1;
[0024] 若沒(méi)有查到所述短URL對(duì)應(yīng)的長(zhǎng)URL,則跳轉(zhuǎn)到所述相應(yīng)地域的上一級(jí)節(jié)點(diǎn)查詢 所述短URL對(duì)應(yīng)的長(zhǎng)URL ;判斷在相應(yīng)地域的上一級(jí)節(jié)點(diǎn)中是否查詢到存儲(chǔ)有所述短URL 對(duì)應(yīng)的長(zhǎng)URL,若是,則將查詢到的所述相應(yīng)地域上一級(jí)節(jié)點(diǎn)中對(duì)應(yīng)存儲(chǔ)的長(zhǎng)URL返回給客 戶端,否則通知相應(yīng)地域節(jié)點(diǎn)中存儲(chǔ)的長(zhǎng)URL訪問(wèn)計(jì)數(shù)器加1 ;
[0025] 短URL存儲(chǔ)模塊,用于存儲(chǔ)用戶播放請(qǐng)求中的短URL ;
[0026] 長(zhǎng)URL存儲(chǔ)模塊,用于存儲(chǔ)各⑶N節(jié)點(diǎn)中的視頻實(shí)際播放器地址長(zhǎng)URL ;
[0027] ⑶N節(jié)點(diǎn)長(zhǎng)URL計(jì)數(shù)器,用于記錄視頻實(shí)際播放器地址長(zhǎng)URL的訪問(wèn)次數(shù),并判斷 是否超出指定的閾值,若超出閾值,則判斷離用戶IP最近的最近CDN結(jié)點(diǎn)是否為底級(jí)節(jié)點(diǎn), 若是,則不做處理;若為非底級(jí)節(jié)點(diǎn),則結(jié)點(diǎn)下沉生成下一級(jí)節(jié)點(diǎn)的長(zhǎng)URL并存儲(chǔ)到分布式 服務(wù)器。
[0028] 本發(fā)明的有益效果
[0029] 本發(fā)明方法采用大數(shù)據(jù)技術(shù),使用分布式數(shù)據(jù)庫(kù)做為短URL和實(shí)際播放地址長(zhǎng) URL的存儲(chǔ)數(shù)據(jù)庫(kù),以短URL做為一個(gè)ROWKEY ;用戶查詢時(shí),通過(guò)短URL定位行主鍵,再結(jié)合 用戶的IP查詢離用戶最近的CDN節(jié)點(diǎn)中所存儲(chǔ)的實(shí)際播放地址長(zhǎng)URL ;并且每次查詢跳轉(zhuǎn) 的動(dòng)作通過(guò)一個(gè)計(jì)數(shù)器來(lái)統(tǒng)計(jì),當(dāng)視頻訪問(wèn)量超出閾值成為熱點(diǎn)視頻時(shí),快速響應(yīng)做節(jié)點(diǎn) 下沉,每次結(jié)點(diǎn)下沉將實(shí)際播放的長(zhǎng)URL存入下沉級(jí)別的節(jié)點(diǎn)中,從而快速將短URL和實(shí)際 播放地址長(zhǎng)URL進(jìn)行關(guān)聯(lián),實(shí)現(xiàn)快速查詢定位到實(shí)際播放地址長(zhǎng)URL ;本發(fā)明通過(guò)行主鍵不 會(huì)消耗太多的IO讀取操作,查詢速度快;短URL便于用戶分享和記憶;且本發(fā)明實(shí)施例中 長(zhǎng)URL是根據(jù)片源名生成的,是一個(gè)固定解析,不會(huì)造成因?yàn)閷?shí)際播放地址長(zhǎng)URL的改變而 造成視頻無(wú)法播放而必須頻繁升級(jí)新軟件的問(wèn)題。
【附圖說(shuō)明】
[0030] 圖1是本發(fā)明優(yōu)選實(shí)施例一種基于短URL查詢的CDN節(jié)點(diǎn)跳轉(zhuǎn)方法流程圖;
[0031] 圖2是本發(fā)明優(yōu)選實(shí)施例一種基于短URL查詢的CDN節(jié)點(diǎn)跳轉(zhuǎn)系統(tǒng)結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0032] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖和實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。應(yīng)當(dāng)理 解,此處所描寫的具體實(shí)施例,僅僅用于解釋本發(fā)明,并不用以限制本發(fā)明。
[0033] 本發(fā)明實(shí)施例采用大數(shù)據(jù)技術(shù),使用分布式數(shù)據(jù)庫(kù)做為短URL和實(shí)際播放地址長(zhǎng) URL的存儲(chǔ)數(shù)據(jù)庫(kù),以短URL做為一個(gè)ROWKEY ;用戶查詢時(shí),通過(guò)短URL定位行主鍵,再結(jié)合 用戶的IP查詢離用戶最近的CDN節(jié)點(diǎn)中所存儲(chǔ)的實(shí)際播放地址長(zhǎng)URL ;并且每次查詢跳轉(zhuǎn) 的動(dòng)作通過(guò)一個(gè)計(jì)數(shù)器來(lái)統(tǒng)計(jì),當(dāng)視頻訪問(wèn)量超出閾值成為熱點(diǎn)視頻時(shí),快速響應(yīng)做節(jié)點(diǎn) 下沉,每次結(jié)點(diǎn)下沉將實(shí)際播放的長(zhǎng)URL存入下沉級(jí)別的節(jié)點(diǎn)中,從而快速將短URL和實(shí)際 播放地址長(zhǎng)URL進(jìn)行關(guān)聯(lián),實(shí)現(xiàn)快速查詢定位到實(shí)際播放地址長(zhǎng)URL ;本發(fā)明實(shí)施例通過(guò)行 主鍵不會(huì)消耗太多的IO讀取操作,查詢速度快;短URL便于用戶分享和記憶;且本發(fā)明實(shí) 施例中長(zhǎng)URL是根據(jù)片源名生成的,是一個(gè)固定解析,不會(huì)造成因?yàn)閷?shí)際播放地址長(zhǎng)URL的 改變而造成視頻無(wú)法播放而必須頻繁升級(jí)新軟件的問(wèn)題。
[0034] 實(shí)施例一
[0035] 本發(fā)明實(shí)施例一種基于短URL查詢的CDN節(jié)點(diǎn)跳轉(zhuǎn)方法,所述方法包括以下步 驟:
[0036] S101、接收用戶通過(guò)客戶端發(fā)送的視頻短URL的播放請(qǐng)求;
[0037] 所述播放請(qǐng)求包括短URL、用戶名、用戶IP ;
[0038] S102、查詢分布式服務(wù)器,并定位所述短URL在分布式服務(wù)器中的存儲(chǔ)行主鍵;
[0039] 所述分布式服務(wù)器可以為hbase服務(wù)器或redis服務(wù)器,其包含數(shù)據(jù)存儲(chǔ)表,所述 數(shù)據(jù)存儲(chǔ)表存儲(chǔ)內(nèi)容包括短URL、用戶名、存儲(chǔ)時(shí)間、長(zhǎng)URL、計(jì)數(shù)器;其中短URL為數(shù)據(jù)表的 RowKey (即關(guān)鍵行位置),存儲(chǔ)時(shí)間即為時(shí)間戳,長(zhǎng)URL為視頻的實(shí)際播放地址,長(zhǎng)URL和計(jì) 數(shù)器均按照不同的地域CDN節(jié)點(diǎn)(簡(jiǎn)稱地域節(jié)點(diǎn))來(lái)分別存儲(chǔ);
[0040] 所述地域節(jié)點(diǎn)被劃分成N個(gè)不同級(jí)別,所有地域節(jié)點(diǎn)均在數(shù)據(jù)存儲(chǔ)表的同一行; 每個(gè)地域?qū)?yīng)一個(gè)地域CDN節(jié)點(diǎn),N為自然數(shù);在進(jìn)行長(zhǎng)URL和計(jì)數(shù)器存儲(chǔ)時(shí),均會(huì)根據(jù)用 戶的IP自動(dòng)判斷最近的地域節(jié)點(diǎn),并存儲(chǔ)在相應(yīng)的字段。第1級(jí)節(jié)點(diǎn)為源站,第N級(jí)別節(jié) 點(diǎn)為底級(jí)節(jié)點(diǎn);
[0041] 所述數(shù)據(jù)存儲(chǔ)表可以為以下存儲(chǔ)結(jié)構(gòu):
[0043] S103、根據(jù)分布式服務(wù)器中存儲(chǔ)的所述短URL的存儲(chǔ)行主鍵、時(shí)間戳和用戶IP,查 詢離用戶IP最近的地域節(jié)點(diǎn)(簡(jiǎn)稱最近CDN節(jié)點(diǎn)),找到所述短URL對(duì)應(yīng)的長(zhǎng)URL (即視頻 實(shí)際播放地址);
[0044] S104、判斷最近⑶N結(jié)點(diǎn)中是否查到存儲(chǔ)有所述短URL對(duì)應(yīng)的長(zhǎng)URL,若是,則進(jìn)入 步驟S105,否則進(jìn)入步驟S107 ;
[0045] S105,將所述對(duì)應(yīng)的長(zhǎng)URL返回給客戶端;并將所述最近⑶N結(jié)點(diǎn)對(duì)應(yīng)存儲(chǔ)的長(zhǎng) URL訪問(wèn)計(jì)數(shù)器加1 ;
[0046] S106、判斷所述計(jì)數(shù)器是否超出指定的閾值,若超出閾值,則判斷所述最近CDN結(jié) 點(diǎn)是否為底級(jí)節(jié)點(diǎn),若是,則不做處理,結(jié)束;若為非底級(jí)節(jié)點(diǎn),則結(jié)點(diǎn)下沉(即節(jié)點(diǎn)級(jí)別加 1)生成下一級(jí)節(jié)點(diǎn)的長(zhǎng)URL并存儲(chǔ)到分布式服務(wù)器,結(jié)束。
[0047] S107、跳轉(zhuǎn)到所述相應(yīng)地域的上一級(jí)節(jié)點(diǎn)(即節(jié)點(diǎn)級(jí)別減1)查詢所述短URL對(duì)應(yīng) 的長(zhǎng)URL ;
[0048] S10 8、判斷在相應(yīng)地域的上一級(jí)節(jié)點(diǎn)中是否查詢到存儲(chǔ)有所述短U RL對(duì)應(yīng)的長(zhǎng) URL,若