一種基于多層結(jié)構(gòu)的低延時(shí)、高并發(fā)媒體流分發(fā)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種流媒體分發(fā)方法,特別是涉及一種基于多層結(jié)構(gòu)的低延時(shí)、高并發(fā)媒體流分發(fā)方法。
【背景技術(shù)】
[0002]在多媒體課堂環(huán)境中,網(wǎng)絡(luò)在線直播時(shí)需要傳輸攝像頭和麥克風(fēng)采集的數(shù)據(jù)給視頻接收者。而當(dāng)在線人數(shù)很多時(shí),單臺(tái)服務(wù)器的處理能力就不足以支持所有用戶實(shí)時(shí)播放視頻的要求。這種情況下一般會(huì)采用服務(wù)器集群,即一臺(tái)主服務(wù)器帶多臺(tái)從服務(wù)器的結(jié)構(gòu),主服務(wù)器將音視頻流推送給其下的從服務(wù)器,相當(dāng)于數(shù)據(jù)流的廣播。但是采用這種方式下仍然會(huì)產(chǎn)生一些問(wèn)題,比如在同時(shí)進(jìn)行多條直播流的情況下,主從服務(wù)器之間的帶寬需求就很大,同時(shí)主從服務(wù)器強(qiáng)綁定不夠靈活。
【發(fā)明內(nèi)容】
[0003]針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種基于多層結(jié)構(gòu)的低延時(shí)、高并發(fā)媒體流分發(fā)方法,解決現(xiàn)有技術(shù)在高并發(fā)情況下要求主從服務(wù)器間寬帶寬問(wèn)題。
[0004]本發(fā)明的技術(shù)方案是這樣的,一種基于多層結(jié)構(gòu)的低延時(shí)、高并發(fā)媒體流分發(fā)方法,包括存儲(chǔ)并提供媒體流的若干核心服務(wù)器,所述媒體流設(shè)有用于互相區(qū)分的ID ;至少兩臺(tái)交換服務(wù)器,每臺(tái)交換服務(wù)器與全部核心服務(wù)器連接;若干用戶服務(wù)器,每臺(tái)用戶服務(wù)器與至少兩臺(tái)交換服務(wù)器連接,用戶機(jī)與用戶服務(wù)器連接;用戶機(jī)獲取媒體流的過(guò)程是:
[0005]I)用戶機(jī)發(fā)送請(qǐng)求給其連接的用戶服務(wù)器,請(qǐng)求信息中包含媒體流的ID和目錄;
[0006]2)用戶服務(wù)器收到請(qǐng)求后,按照如下步驟進(jìn)行處理:
[0007]2a)查詢本用戶服務(wù)器正在服務(wù)的媒體流列表,根據(jù)媒體流ID判斷該媒體流是否已經(jīng)存在,如果已經(jīng)存在,直接將該媒體流發(fā)送給用戶機(jī),結(jié)束流程;如果不存在,進(jìn)入步驟2b);
[0008]2b)查詢本用戶服務(wù)器的交換服務(wù)器列表中交換服務(wù)器的狀態(tài),選擇狀態(tài)為可用的交換服務(wù)器,進(jìn)入步驟2c);如果交換服務(wù)器列表中所有交換服務(wù)器狀態(tài)均不可用,返回錯(cuò)誤信息,結(jié)束流程;
[0009]2c)用戶服務(wù)器向選擇的交換服務(wù)器發(fā)起請(qǐng)求,請(qǐng)求信息中包含媒體流的ID和目錄;
[0010]3)交換服務(wù)器收到請(qǐng)求后,按照如下步驟進(jìn)行處理:
[0011]3a)查詢本交換服務(wù)器正在服務(wù)的媒體流列表,根據(jù)媒體流ID判斷該媒體流是否已經(jīng)存在,如果已經(jīng)存在,直接將該媒體流發(fā)送給用戶服務(wù)器,結(jié)束流程;如果不存在,進(jìn)入步驟3b);
[0012]3b)根據(jù)請(qǐng)求信息中的目錄信息,選擇對(duì)應(yīng)的核心服務(wù)器,并將媒體流的ID和目錄發(fā)送給該對(duì)應(yīng)的核心服務(wù)器;
[0013]4)核心服務(wù)器收到請(qǐng)求后,根據(jù)請(qǐng)求信息中媒體流的ID和目錄信息,確定請(qǐng)求的媒體流,并將該媒體流發(fā)送給請(qǐng)求服務(wù)的交換服務(wù)器;
[0014]5)交換服務(wù)器收到媒體流后,將媒體流發(fā)送給用戶服務(wù)器;
[0015]6)用戶服務(wù)器收到媒體流后,將媒體流發(fā)送給用戶機(jī),結(jié)束流程。
[0016]進(jìn)一步的,所述步驟2b)為依次查詢本用戶服務(wù)器的交換服務(wù)器列表中交換服務(wù)器的狀體,選擇第一臺(tái)狀態(tài)為可用的交換服務(wù)器,進(jìn)入步驟2c);如果所有交換服務(wù)器狀態(tài)均為不可用,返回錯(cuò)誤信息,結(jié)束流程。
[0017]本發(fā)明所提供的技術(shù)方案,在極少增加時(shí)延的情況下,大大增加課堂流媒體的并發(fā)用戶數(shù),同時(shí)提高各級(jí)服務(wù)器的利用率,降低各級(jí)服務(wù)器之間的帶寬,具有以下效果:
[0018]a)流媒體從源到達(dá)接收方的過(guò)程中,消耗在服務(wù)器上的時(shí)延很低,幾乎可以忽略不計(jì)。
[0019]b)單個(gè)媒體流的計(jì)算資源占用很低,單臺(tái)服務(wù)器在足夠帶寬的支持下,能夠支持千人以上的并發(fā)。
[0020]c)整個(gè)系統(tǒng)能夠支持百萬(wàn)級(jí)的并發(fā)。
[0021]d)按需請(qǐng)求,多層交互時(shí),需要時(shí)從上層服務(wù)器上主動(dòng)獲取,不需要時(shí)不占上層服務(wù)器的資源。
[0022]e)單臺(tái)用戶服務(wù)器的故障只會(huì)影響其下的用戶,不會(huì)影響其他用戶。
[0023]f)多路備份,當(dāng)主鏈路故障時(shí)能夠快速切換到備用鏈路,使服務(wù)不間斷。
【附圖說(shuō)明】
[0024]圖1為網(wǎng)絡(luò)拓?fù)涫疽鈭D。
[0025]圖2為本發(fā)明媒體流請(qǐng)求分發(fā)過(guò)程示意圖。
【具體實(shí)施方式】
[0026]下面結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,但不作為對(duì)本發(fā)明的限定。
[0027]請(qǐng)結(jié)合圖1及圖2,本實(shí)施例涉及的服務(wù)器分層布置,具體分為:
[0028]核心服務(wù)層:由四臺(tái)核心服務(wù)器組成,核心服務(wù)器是媒體流的源頭,該層服務(wù)器提供不同的媒體流,媒體流通過(guò)ID區(qū)分,ID是一個(gè)從I開(kāi)始的64位整數(shù)。
[0029]交換服務(wù)層:由三臺(tái)交換服務(wù)器組成,負(fù)責(zé)橋接核心服務(wù)層和用戶服務(wù)層,形成服務(wù)器的集群,訂閱所有核心服務(wù)層上所有核心服務(wù)器的媒體流資源,向用戶服務(wù)層提供完整的媒體流列表。
[0030]用戶服務(wù)層:由六臺(tái)用戶服務(wù)器組成,負(fù)責(zé)實(shí)際用戶機(jī)的連接,并把媒體流發(fā)送給用戶機(jī)。該層每臺(tái)服務(wù)器連接至少兩臺(tái)交換服務(wù)器,組成多路鏈路備份機(jī)制,當(dāng)正在使用的交換服務(wù)器不可用時(shí),可以快速啟用某條備用鏈路的交換服務(wù)器,實(shí)現(xiàn)不斷流的作用。
[0031]媒體流的請(qǐng)求分發(fā)過(guò)程如圖2所示,其過(guò)程如下:
[0032]I)當(dāng)用戶通過(guò)用戶機(jī)選擇某個(gè)媒體流后,用戶機(jī)發(fā)送請(qǐng)求給其連接的用戶服務(wù)器,請(qǐng)求信息中包含媒體流的ID和目錄。
[0033]2)用戶服務(wù)器收到請(qǐng)求后,用戶服務(wù)器按照如下步驟進(jìn)行處理:
[0034]2a)查詢媒體流:查詢本用戶服務(wù)器正在服務(wù)的媒體流列表,根據(jù)媒體流ID判斷該媒體流是否已經(jīng)存在。如果已經(jīng)存在,直接將該媒體流發(fā)送給用戶機(jī),處理結(jié)束;如果不存在,進(jìn)入步驟2b)。
[0035]2b)選擇交換服務(wù)器:依次查詢本用戶服務(wù)器的交換服務(wù)器列表中交換服務(wù)器的狀態(tài),如果其狀態(tài)為可用,則選擇該交換服務(wù)器;如果不可用,判斷其后的交換服務(wù)器狀態(tài),直至交換服務(wù)器列表中的最后一臺(tái)服務(wù)器。如果選到了可用交換服務(wù)器,進(jìn)入步驟2c);如果沒(méi)有選到,返回錯(cuò)誤信息,結(jié)束流程。
[0036]2c)用戶服務(wù)器向選擇的可用交換服務(wù)器發(fā)起請(qǐng)求,請(qǐng)求信息中包含媒體流的ID和目錄。
[0037]3)交換服務(wù)器收到請(qǐng)求后,按照如下步驟進(jìn)行處理:
[0038]3a)查詢媒體流:查詢本交換服務(wù)器正在服務(wù)的媒體流列表,根據(jù)媒體流ID判斷該媒體流是否已經(jīng)存在。如果已經(jīng)存在,直接將該媒體流發(fā)送給用戶服務(wù)器,處理結(jié)束;如果不存在,進(jìn)入步驟3b)。
[0039]3b)選擇核心服務(wù)器:根據(jù)請(qǐng)求信息中的目錄信息,選擇哪臺(tái)核心服務(wù)器來(lái)提供服務(wù),并將媒體流的ID和目錄發(fā)送給選擇核心服務(wù)器。
[0040]4)核心服務(wù)器收到請(qǐng)求后,根據(jù)請(qǐng)求信息中媒體流的ID和目錄信息,確定請(qǐng)求的媒體流,并將該媒體流發(fā)送給請(qǐng)求服務(wù)的交換服務(wù)器。
[0041]5)交換服務(wù)器收到媒體流后,將媒體流發(fā)送給用戶服務(wù)器。
[0042]6)用戶服務(wù)器收到媒體流后,將媒體流發(fā)送給用戶機(jī),結(jié)束流程。
【主權(quán)項(xiàng)】
1.一種基于多層結(jié)構(gòu)的低延時(shí)、高并發(fā)媒體流分發(fā)方法,其特征在于,包括存儲(chǔ)并提供媒體流的若干核心服務(wù)器,所述媒體流設(shè)有用于互相區(qū)分的ID ;至少兩臺(tái)交換服務(wù)器,每臺(tái)交換服務(wù)器與全部核心服務(wù)器連接;若干用戶服務(wù)器,每臺(tái)用戶服務(wù)器與至少兩臺(tái)交換服務(wù)器連接,用戶機(jī)與用戶服務(wù)器連接;用戶機(jī)獲取媒體流的過(guò)程是: 1)用戶機(jī)發(fā)送請(qǐng)求給其連接的用戶服務(wù)器,請(qǐng)求信息中包含媒體流的ID和目錄; 2)用戶服務(wù)器收到請(qǐng)求后,按照如下步驟進(jìn)行處理: 2a)查詢本用戶服務(wù)器正在服務(wù)的媒體流列表,根據(jù)媒體流ID判斷該媒體流是否已經(jīng)存在,如果已經(jīng)存在,直接將該媒體流發(fā)送給用戶機(jī),結(jié)束流程;如果不存在,進(jìn)入步驟2b); 2b)查詢本用戶服務(wù)器的交換服務(wù)器列表中交換服務(wù)器的狀體,選擇狀態(tài)為可用的交換服務(wù)器,進(jìn)入步驟2c);如果交換服務(wù)器列表中所有交換服務(wù)器狀態(tài)均不可用,返回錯(cuò)誤信息,結(jié)束流程; 2c)用戶服務(wù)器向選擇的交換服務(wù)器發(fā)起請(qǐng)求,請(qǐng)求信息中包含媒體流的ID和目錄; 3)交換服務(wù)器收到請(qǐng)求后,按照如下步驟進(jìn)行處理: 3a)查詢本交換服務(wù)器正在服務(wù)的媒體流列表,根據(jù)媒體流ID判斷該媒體流是否已經(jīng)存在,如果已經(jīng)存在,直接將該媒體流發(fā)送給用戶服務(wù)器,結(jié)束流程;如果不存在,進(jìn)入步驟3b); 3b)根據(jù)請(qǐng)求信息中的目錄信息,選擇對(duì)應(yīng)的核心服務(wù)器,并將媒體流的ID和目錄發(fā)送給該對(duì)應(yīng)的核心服務(wù)器; 4)核心服務(wù)器收到請(qǐng)求后,根據(jù)請(qǐng)求信息中媒體流的ID和目錄信息,確定請(qǐng)求的媒體流,并將該媒體流發(fā)送給請(qǐng)求服務(wù)的交換服務(wù)器; 5)交換服務(wù)器收到媒體流后,將媒體流發(fā)送給用戶服務(wù)器; 6)用戶服務(wù)器收到媒體流后,將媒體流發(fā)送給用戶機(jī),結(jié)束流程。
2.根據(jù)權(quán)利要求1所述的基于多層結(jié)構(gòu)的低延時(shí)、高并發(fā)媒體流分發(fā)方法,其特征在于,所述步驟2b)為依次查詢本用戶服務(wù)器的交換服務(wù)器列表中交換服務(wù)器的狀態(tài),選擇第一臺(tái)狀態(tài)為可用的交換服務(wù)器,進(jìn)入步驟2c);如果所有交換服務(wù)器狀態(tài)均為不可用,返回錯(cuò)誤信息,結(jié)束流程。
【專利摘要】本發(fā)明公開(kāi)了一種基于多層結(jié)構(gòu)的低延時(shí)、高并發(fā)媒體流分發(fā)方法,包括核心服務(wù)器層、交換服務(wù)器層和用戶服務(wù)器層,用戶機(jī)請(qǐng)求媒體流后,用戶服務(wù)器先確定請(qǐng)求的媒體流是否已在本服務(wù)器服務(wù)列表,如已存在則直接給用戶機(jī)發(fā)送媒體流,如不存在則向交換服務(wù)器發(fā)送請(qǐng)求,交換服務(wù)器先確定請(qǐng)求的媒體流是否已在本服務(wù)器服務(wù)列表,如已存在則給用戶服務(wù)器發(fā)送媒體流再向下傳遞給用戶機(jī),如不存在則向核心服務(wù)器請(qǐng)求媒體流,核心服務(wù)器將媒體流下發(fā)。本方法大大增加課堂流媒體的并發(fā)用戶數(shù),同時(shí)提高各級(jí)服務(wù)器的利用率,降低各級(jí)服務(wù)器之間的帶寬。
【IPC分類】H04N21-262, H04N21-231, H04N21-437
【公開(kāi)號(hào)】CN104581192
【申請(qǐng)?zhí)枴緾N201410850172
【發(fā)明人】周維豐, 張福新, 吳少剛, 金曉晨, 管斌
【申請(qǐng)人】江蘇中科夢(mèng)蘭電子科技有限公司
【公開(kāi)日】2015年4月29日
【申請(qǐng)日】2014年12月31日