一種快速響應(yīng)用戶請(qǐng)求的流媒體系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及流媒體領(lǐng)域,尤其涉及對(duì)用戶請(qǐng)求的快速響應(yīng)。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的進(jìn)步,流媒體技術(shù)也日益流行。流媒體技術(shù)是將整個(gè)多媒體文件(例如,視頻、音頻、以及其他多媒體文件等)分成各個(gè)分段,由流媒體服務(wù)器向用戶連續(xù)地傳送。用戶不必等到整個(gè)文件全部下載完畢,而是只需經(jīng)過一段時(shí)間的啟動(dòng)延時(shí)即可播放和觀看該多媒體文件。
[0003]流媒體服務(wù)器的其中一個(gè)比較關(guān)鍵的指標(biāo)是保證可靠的快速響應(yīng)用戶請(qǐng)求服務(wù),尤其是在高并發(fā)、高在線的情況下。現(xiàn)有系統(tǒng)在這方面尚存缺陷,有待改進(jìn)。然而,本發(fā)明不限于解決上述問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供了一種流媒體系統(tǒng)架構(gòu)以及相應(yīng)的對(duì)用戶請(qǐng)求進(jìn)行服務(wù)的方法,使得在一定壓力的情況下,能夠保證用戶的請(qǐng)求能夠及時(shí)的被響應(yīng),并且不影響其他在線用戶的播放質(zhì)量。
[0005]根據(jù)本發(fā)明的一實(shí)施例,公開了一種流媒體系統(tǒng)架構(gòu),包括:云存儲(chǔ);全局調(diào)度系統(tǒng);區(qū)域推流服務(wù)器群節(jié)點(diǎn);以及用戶終端。所述云存儲(chǔ)是該流媒體系統(tǒng)的內(nèi)容源,包括多個(gè)存儲(chǔ)服務(wù)器。所述全局負(fù)載調(diào)度用于將用戶請(qǐng)求調(diào)度到合適的區(qū)域推流服務(wù)器群節(jié)點(diǎn)以及在必要時(shí)調(diào)度到云存儲(chǔ)。所述區(qū)域推流服務(wù)器群節(jié)點(diǎn)用于將用戶請(qǐng)求調(diào)度到其所包含的一個(gè)或多個(gè)高速緩存服務(wù)器之一。
[0006]根據(jù)本發(fā)明的一實(shí)施例,公開了一種對(duì)流媒體用戶請(qǐng)求進(jìn)行服務(wù)的方法,包括:接收用戶請(qǐng)求;基于接收到的用戶請(qǐng)求確定就近區(qū)域推流服務(wù)器群節(jié)點(diǎn);將用戶調(diào)度到就近區(qū)域推流服務(wù)器群節(jié)點(diǎn),以對(duì)該用戶請(qǐng)求進(jìn)行響應(yīng);響應(yīng)于確定就近區(qū)域推流服務(wù)器群節(jié)點(diǎn)不能對(duì)該請(qǐng)求進(jìn)行服務(wù),確定其他區(qū)域推流服務(wù)器群節(jié)點(diǎn)是否能對(duì)該請(qǐng)求進(jìn)行服務(wù);如果是,則將用戶調(diào)度到其他區(qū)域推流服務(wù)器群節(jié)點(diǎn)以對(duì)該用戶請(qǐng)求進(jìn)行響應(yīng);否則,響應(yīng)于區(qū)域推流服務(wù)器群節(jié)點(diǎn)都不能對(duì)該請(qǐng)求進(jìn)行服務(wù),將用戶調(diào)度到云存儲(chǔ)以對(duì)該用戶請(qǐng)求進(jìn)行響應(yīng)。
[0007]根據(jù)本發(fā)明的一實(shí)施例,公開了一種高速緩存服務(wù)器的體系結(jié)構(gòu),包括:CPU,所述CPU包括一個(gè)或多個(gè)核,在多核CPU的情況下,所述CPU被劃分成兩段,即上段和下段:上段用于進(jìn)行用戶服務(wù),而下段則用來控制本地磁盤的讀取,CPU的上段與下段之間采用0S內(nèi)核間(消息觸發(fā)及數(shù)據(jù)拷貝)進(jìn)行通訊,在上段中,每個(gè)CPU的核都會(huì)以獨(dú)占模式托管一定比例的用戶,使核與核之間盡量避免過多的交互;多級(jí)存儲(chǔ),其中在所述多級(jí)存儲(chǔ)中統(tǒng)計(jì)不同性能級(jí)別磁盤上的熱度搬迀和淘汰,以充分地利用內(nèi)存、高性能磁盤SSD與中間性能SAS盤之間的一個(gè)針對(duì)性能和相對(duì)大磁盤空間的利用率的一個(gè)折中,每個(gè)級(jí)別的存儲(chǔ)上,以大塊的模式將視頻片儲(chǔ)存在本地磁盤上,以保證傳統(tǒng)磁盤上每個(gè)塊能夠以一種相對(duì)連續(xù)性的存儲(chǔ)在磁盤上,同時(shí)根據(jù)流媒體文件編碼的特性和用戶行為習(xí)慣,進(jìn)行跨文件的預(yù)讀;以及網(wǎng)絡(luò)接口,所述網(wǎng)絡(luò)接口采取無中斷模型,以輪詢的模式讓網(wǎng)卡進(jìn)行收發(fā)數(shù)據(jù)。
【附圖說明】
[0008]圖1示出了根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)架構(gòu)。
[0009]圖2示出了根據(jù)本發(fā)明的實(shí)施例的高速緩存服務(wù)器的體系結(jié)構(gòu)框圖。
[0010]圖3示出了根據(jù)本發(fā)明的實(shí)施例的對(duì)用戶請(qǐng)求進(jìn)行服務(wù)的方法的流程圖。
【具體實(shí)施方式】
[0011]申請(qǐng)人意識(shí)到,系統(tǒng)架構(gòu)決定了調(diào)度模型,調(diào)度的好壞決定了服務(wù)的響應(yīng)速度和用戶流媒體質(zhì)量的體驗(yàn)。因而,在本發(fā)明中,申請(qǐng)人提供了一種優(yōu)化的流媒體系統(tǒng)架構(gòu),獲得了良好的調(diào)度效果,提高了對(duì)用戶請(qǐng)求的響應(yīng)速度。
[0012]現(xiàn)在將詳細(xì)參考附圖描述本發(fā)明的實(shí)施例。
[0013]圖1示出了根據(jù)本發(fā)明的實(shí)施例的流媒體系統(tǒng)的系統(tǒng)架構(gòu)。如圖所示,該系統(tǒng)包括云存儲(chǔ)、全局負(fù)載調(diào)度、區(qū)域推流服務(wù)器群節(jié)點(diǎn)A、區(qū)域推流服務(wù)器群節(jié)點(diǎn)B、用戶終端
1-2等等。雖然圖1中僅示出了兩個(gè)區(qū)域推流服務(wù)器群節(jié)點(diǎn)A和B以及兩個(gè)用戶終端1-2,但可以理解,這僅僅是為了簡(jiǎn)明和便于描述的目的來示出的,本系統(tǒng)可以包含任何數(shù)量的區(qū)域推流服務(wù)器群節(jié)點(diǎn)和用戶終端。還需注意,雖然在圖1中將各個(gè)組件示為彼此分開,但可以理解,這僅僅是這些組件在邏輯上的關(guān)系,它們中的一些可以彼此結(jié)合。例如,全局負(fù)載調(diào)度可以與云存儲(chǔ)位于一處,可以與某一區(qū)域推流服務(wù)器群節(jié)點(diǎn)位于一處,等等。
[0014]云存儲(chǔ)包含存儲(chǔ)服務(wù)器集群。云存儲(chǔ)是該流媒體系統(tǒng)的內(nèi)容源,用于存儲(chǔ)包括多媒體文件(例如視頻、音頻等等)在內(nèi)的各種內(nèi)容。這些多媒體文件是以文件切片的形態(tài)存儲(chǔ)在云存儲(chǔ)中的各個(gè)磁盤服務(wù)器之上的。因而,在并發(fā)訪問文件的時(shí)候分散了單臺(tái)存儲(chǔ)服務(wù)器的磁盤壓力,同時(shí)也提高了通過云存儲(chǔ)提供內(nèi)容的速度和可靠性。
[0015]云存儲(chǔ)用于向各區(qū)域推流服務(wù)器群節(jié)點(diǎn)提供內(nèi)容以及在必要時(shí)直接向用戶提供內(nèi)容。云存儲(chǔ)中的內(nèi)容是與其在內(nèi)容訪問周期內(nèi)的熱度相關(guān)聯(lián)地存儲(chǔ)的。內(nèi)容熱度可根據(jù)在一定內(nèi)容訪問周期中的用戶點(diǎn)擊頻率等來計(jì)算并與該內(nèi)容相關(guān)聯(lián)地存儲(chǔ)。例如,可計(jì)算內(nèi)容在一定的訪問周期內(nèi)用戶點(diǎn)擊數(shù)的加權(quán)平均,以獲得內(nèi)容熱度。例如,假定內(nèi)容訪問周期介于T1到TN,TN = N*T1,N是大于1的整數(shù),內(nèi)容訪問頻率在T1到TN之間線性分布。假設(shè)內(nèi)容在每個(gè)時(shí)間TX里獲得的訪問量為TXPV,設(shè)計(jì)系數(shù)A = (N-l)/N。如此,可如下計(jì)算隨時(shí)間衰減的關(guān)注度(即,熱度C):
[0016]T1PV*A~ (N-l) +T2PV*A~ (N_2) +T3PV*A~ (N_3) +......+TNPV = Σ TXPV*A~ (N_X)
[0017]用一個(gè)字段存儲(chǔ)截止到上一個(gè)時(shí)間周期的Σ TXPV*A~ (N-X)(即該內(nèi)容的熱度C),另一個(gè)字段存儲(chǔ)當(dāng)前時(shí)間周期的訪問量(此值表示為D),當(dāng)進(jìn)入下一時(shí)間周期時(shí),使用C*A+D替換C,然后D清零。在內(nèi)容熱度到達(dá)一定熱度閾值時(shí),把該內(nèi)容從云存儲(chǔ)搬迀到高速緩存服務(wù)器。一般而言,內(nèi)容的初始熱度為零,但可以根據(jù)需要對(duì)某些內(nèi)容設(shè)置大于零的初始熱度。
[0018]此外,可以將播放時(shí)長(zhǎng)、不同用戶的點(diǎn)擊等作為計(jì)算內(nèi)容熱度時(shí)的一個(gè)參數(shù)加以考慮。例如在計(jì)算內(nèi)容熱度時(shí),播放時(shí)長(zhǎng)短于一定閾值的用戶點(diǎn)擊可不被考慮或者權(quán)重較小;不同用戶的多次點(diǎn)擊比同一用戶的多次點(diǎn)擊權(quán)重更大;等等。
[0019]云存儲(chǔ)還用于在各高速緩存服務(wù)器上不存在用戶所請(qǐng)求的內(nèi)容時(shí)直接對(duì)該用戶請(qǐng)求進(jìn)行服務(wù)。在這個(gè)服務(wù)過程中,作為周期性地計(jì)算文件片的熱度的補(bǔ)充,也會(huì)對(duì)這些冷門文件片進(jìn)行熱度統(tǒng)計(jì)和計(jì)算,來進(jìn)行一系列淘汰的算法,以保證高速緩存服務(wù)器之上的文件片永遠(yuǎn)是熱門的。
[0020]全局負(fù)載調(diào)度是該流媒體系統(tǒng)的入口,即用戶終端的內(nèi)容請(qǐng)求會(huì)被發(fā)送到全局負(fù)載調(diào)度。如其名稱所示,全局負(fù)載調(diào)度負(fù)責(zé)整個(gè)系統(tǒng)中用戶請(qǐng)求的調(diào)度。首先,全局負(fù)載調(diào)度確定就近的區(qū)域推流服務(wù)器群節(jié)點(diǎn),如果在該就近的區(qū)域推流服務(wù)器群節(jié)點(diǎn)上存在用戶所請(qǐng)求的內(nèi)容的情況下,則將用戶調(diào)度到該節(jié)點(diǎn);當(dāng)就近區(qū)域推流服務(wù)器群節(jié)點(diǎn)內(nèi)沒有找到用戶所請(qǐng)求的內(nèi)容或該就近節(jié)點(diǎn)壓力過大時(shí),則將用戶調(diào)度到其他區(qū)域推流服務(wù)器群節(jié)點(diǎn)上進(jìn)行服務(wù);如果在其他區(qū)域推流服務(wù)器群節(jié)點(diǎn)上仍未找到所請(qǐng)求的內(nèi)容,則將用戶調(diào)度到云存儲(chǔ)來直接對(duì)用戶進(jìn)行服務(wù)。例如,全局負(fù)載調(diào)度根據(jù)用戶請(qǐng)求中所包括的IP地址等信息來確定就近的區(qū)域推流服務(wù)器群節(jié)點(diǎn)。全局負(fù)載調(diào)度將該IP與區(qū)域推流服務(wù)器群節(jié)點(diǎn)的各IP進(jìn)行比較,以確定就近節(jié)點(diǎn)。隨后,確定就近節(jié)點(diǎn)上是否存在用戶所請(qǐng)求的內(nèi)容。
[0021]每一區(qū)域推流服務(wù)器群節(jié)點(diǎn)包括一個(gè)或多個(gè)高速緩存服務(wù)器,它們存儲(chǔ)有來自云存儲(chǔ)(即,內(nèi)容源)的各媒體文件內(nèi)容。與云存儲(chǔ)相同,在高速緩存服務(wù)器之上存儲(chǔ)的文件也是以文件分片形態(tài)存在的,這增加了高性能高速緩存磁盤