本發(fā)明涉及流媒體直播領域,且特別涉及一種實時課堂流媒體直播負載分配方法。
背景技術:
隨著互聯(lián)網(wǎng)的發(fā)展,利用網(wǎng)絡進行流媒體直播或點播逐漸成為一種趨勢,慢慢融入到人們的日常生活中,在工作、學習以及娛樂等各個方面形成熱點,無論是視頻會議、在線教育還是網(wǎng)絡電視、視頻網(wǎng)站都應用的越來越廣泛。流媒體(Stream Media)是指采用流式傳輸?shù)姆绞皆贗nternet/Intranet播放的媒體格式,如音頻、視頻或多媒體文件。流媒體在播放前不需要下載整個文件,只將開始部分內容存入內存,在計算機中對數(shù)據(jù)包進行緩存并使流媒體數(shù)據(jù)正確地輸出,可以邊下載邊觀看。其原理是把向用戶傳輸?shù)亩嗝襟w文件按照播出時間順序分為不同的片段,然后依次把這些片段發(fā)給用戶,連續(xù)播放這些片段就形成了連續(xù)的聲音和圖像。
流式傳輸主要指將整個音頻和視頻及三維媒體等多媒體文件經(jīng)過特定的壓縮方式解析成一個個壓縮包,由視頻服務器向用戶計算機順序或實時傳送。在采用流式傳輸方式的系統(tǒng)中,用戶不必像采用下載方式那樣等到整個文件全部下載完畢,而是只需經(jīng)過幾秒或者幾十秒的啟動延時即可再用戶的計算機上利用解壓設備對壓縮的多媒體文件解壓后進行播放和觀看。此時多媒體文件的剩余部分將在后臺的服務器內繼續(xù)下載。與單純的下載方式相比,這種對多媒體文件邊下載邊播放的流式傳輸方式不僅使啟動時間大幅度地縮短,而且對系統(tǒng)緩存容量的需求也大大降低,極大地減少用戶用在等待的時間。目前,流媒體技術已經(jīng)廣泛應用在互聯(lián)網(wǎng)領域中。
傳統(tǒng)的網(wǎng)絡流媒體播放系統(tǒng)一般基于C/S模式,但是由于流媒體播放需要消耗大量的網(wǎng)絡帶寬和服務器資源,因此這種模式嚴重限制了網(wǎng)絡流媒體業(yè)務的發(fā)展。以一個占用帶寬為300kbps的網(wǎng)絡視頻流為例,當有1000個用戶同時觀看時,需要的帶寬是300Mbps。這樣的性能要求對于大多數(shù)服務器來說是滿足不了的。如果要支持幾萬甚至幾十萬的用戶,采用這種C/S模式幾乎是不可能的。增加服務器數(shù)量和提高帶寬是一種解決方法,將不同的用戶分配連接到不同的服務器,從而降低單臺服務器的負載,通過某種負載分擔技術,將外部發(fā)送來的請求均勻分配到對稱結構中的某一臺服務器上,而接收到請求的服務器獨立地回應客戶的請求,也就是常說的負載均衡技術。
隨著互聯(lián)網(wǎng)信息的爆炸性增長,負載均衡(load balance)已經(jīng)不再是一個很陌生的話題,顧名思義,負載均衡即是將負載分攤到不同的服務單元(例如Web服務器、FTP服務器、企業(yè)關鍵應用服務器和其它關鍵任務服務器等),既保證服務的可用性,又保證響應足夠快,給用戶很好的體驗。快速增長的訪問量和數(shù)據(jù)流量催生了各式各樣的負載均衡產(chǎn)品,很多專業(yè)的負載均衡硬件提供了很好的功能,但卻價格不菲,這使得負載均衡軟件大受歡迎,nginx就是其中的一個。
nginx第一個公開版本發(fā)布于2004年,2011年發(fā)布了1.0版本。它的特點是穩(wěn)定性高、功能強大、資源消耗低,從其目前的市場占有而言,nginx大有與apache搶市場的勢頭。其中不得不提到的一個特性就是其負載均衡功能,這也成了很多公司選擇它的主要原因。
對于在線教育的流媒體直播領域而言,與一般的流媒體直播技術相比有一定的區(qū)別,有其特殊性,對于特定的某一課堂來說,需要將相關用戶盡量分配到同一臺服務器上,以保證該課堂直播的同步性和穩(wěn)定性,使得同一課堂的用戶都具有相同的觀看環(huán)境,本發(fā)明正是為了解決這一問題所提出的技術方案。
技術實現(xiàn)要素:
本發(fā)明提出一種實時課堂流媒體直播負載分配方法,能夠將特定課堂的用戶終端分配到同一臺服務器上,保證該課堂直播的同步性和穩(wěn)定性。
為了達到上述目的,本發(fā)明提出一種實時課堂流媒體直播負載分配方法,包括下列步驟:
當?shù)谝慌_用戶終端上線時,負載分配服務器控制Nginx服務器將所述第一臺用戶終端分配連接到某一臺課堂服務器上;
所述負載控制服務器記錄用戶終端連接課堂服務器的信息,并生成分配策略信息;
所述負載分配服務器向負載控制服務器請求并緩存所述分配策略信息;
當有新的用戶終端上線時,所述負載分配服務器根據(jù)其緩存的分配策略信息通過所述Nginx服務器將新上線的用戶終端分配連接到相應的課堂服務器上。
進一步的,所述用戶終端的信息包括課堂ID和用戶ID。
進一步的,所述分配策略信息還包括將同一課堂ID的用戶終端分配到同一臺課堂服務器上。
進一步的,當新上線用戶終端的課堂ID與已分配課堂服務器的課堂ID都不相同時,將其分配連接到另外一臺課堂服務器上。
進一步的,所述負載控制服務器根據(jù)學校ID判斷是否將該學校學生的用戶終端都連接到同一臺課堂服務器上。
進一步的,所述負載控制服務器通過WEB服務器下載學校ID與課堂服務器的綁定數(shù)據(jù)。
本發(fā)明提出的實時課堂流媒體直播負載分配方法,使用負載分配服務器通過Nginx服務器將課堂ID相同的用戶終端分配連接到相同的課堂服務器,從而將特定課堂的用戶終端分配到同一臺服務器上,保證該課堂直播的同步性和穩(wěn)定性,使得同一課堂的用戶都具有相同的觀看環(huán)境。
附圖說明
圖1所示為本發(fā)明較佳實施例的實時課堂流媒體直播負載分配方法流程圖。
圖2所示為本發(fā)明較佳實施例的實時課堂流媒體直播負載分配系統(tǒng)結構圖。
具體實施方式
以下結合附圖給出本發(fā)明的具體實施方式,但本發(fā)明不限于以下的實施方式。根據(jù)下面說明和權利要求書,本發(fā)明的優(yōu)點和特征將更清楚。需說明的是,附圖均采用非常簡化的形式且均使用非精準的比率,僅用于方便、明晰地輔助說明本發(fā)明實施例的目的。
請參考圖1和圖2,圖1所示為本發(fā)明較佳實施例的實時課堂流媒體直播負載分配方法流程圖,圖2所示為本發(fā)明較佳實施例的實時課堂流媒體直播負載分配系統(tǒng)結構圖。本發(fā)明提出一種實時課堂流媒體直播負載分配方法,包括下列步驟:
步驟S100:當?shù)谝慌_用戶終端上線時,負載分配服務器控制Nginx服務器將所述第一臺用戶終端分配連接到某一臺課堂服務器上;
步驟S200:所述負載控制服務器記錄用戶終端連接課堂服務器的信息,并生成分配策略信息;
步驟S300:所述負載分配服務器向負載控制服務器請求并緩存所述分配策略信息;
步驟S400:當有新的用戶終端上線時,所述負載分配服務器根據(jù)其緩存的分配策略信息通過所述Nginx服務器將新上線的用戶終端分配連接到相應的課堂服務器上。
根據(jù)本發(fā)明較佳實施例,所述用戶終端500的信息包括課堂ID和用戶ID,其中用戶ID用于標明用戶終端500的身份信息,課堂ID用于標明用戶終端當前加入的課堂信息。
所述分配策略信息還包括將同一課堂ID的用戶終端500分配到同一臺課堂服務器100上,課堂ID相同的用戶終端500表明其所加入的課堂是相同的,將他們分配到同一臺課堂服務器100上,以保證同一課堂用戶終端500的服務器環(huán)境相同。當?shù)谝慌_用戶終端500上線時,負載控制服務器200尚未生成分配策略信息,判斷當前用戶終端500的課堂ID為首次出現(xiàn),通過負載分配服務器300控制Nginx服務器400將當前用戶終端500分配連接到某一臺課堂服務器100上;所述負載控制服務器200記錄用戶終端500連接課堂服務器100的信息,并生成分配策略信息,即當前課堂ID的用戶終端500連接的課堂服務器100信息;負載分配服務器300向負載控制服務器200請求并緩存所述分配策略信息,當有新的用戶終端500上線時,若其課堂ID與之前分配的用戶終端500的課堂ID相同時,通過Nginx服務器400將當前用戶終端分配到相同的課堂服務器100。
進一步的,當新上線用戶終端500的課堂ID與已分配課堂服務器100的課堂ID都不相同時,將其分配連接到另外一臺課堂服務器100上,不同的課堂ID表明當前用戶終端500所加入的課堂與已分配的用戶終端500的課堂并不相同,需要為其分配連接到另外一臺課堂服務器100上,此時需要獲取分配策略信息,若當前課堂ID是第一次出現(xiàn)時,Nginx服務器400為當前用戶終端500分配一個新的課堂服務器100,Nginx服務器400反饋分配情況給負載分配服務器300,更新并記錄分配策略信息到負載控制服務器200;若當前課堂ID并不是第一次出現(xiàn)時,負載分配服務器300根據(jù)從負載控制服務器200緩存的分配策略信息,通過Nginx服務器400將用戶終端500分配連接到相應的課堂服務器100。
根據(jù)本發(fā)明較佳實施例,所述負載控制服務器200根據(jù)學校ID判斷是否將該學校學生的用戶終端500都連接到同一臺課堂服務器100上。所述用戶終端500的信息還包括學校ID,屬于同一所學校的用戶終端500具有相同的學校ID,所述負載控制服務器200首先判斷當前用戶終端500的學校ID是否屬于預先設置的特殊學校,若當前用戶終端500的學校ID屬于特殊學校時,將其分配到特定的課堂服務器100,之后具有相同學校ID的用戶終端500也全部分配連接到這臺特定的課堂服務器100上。
進一步的,所述負載控制服務器200通過WEB服務器600下載學校ID與課堂服務器100的綁定數(shù)據(jù)。負載控制服務器200通過WEB服務器600獲取特殊學校的學校ID并將其與特定的課堂服務器100綁定,后續(xù)根據(jù)上線的用戶終端500的學校ID來判斷是否將其分配到特定的課堂服務器100。
所有課堂服務器100向負載控制服務器200上報服務器在線情況,當有課堂服務器100離線時,負載控制服務器200會將新上線的用戶終端500分配連接到其他的課堂服務器100,已經(jīng)分配到離線服務器的用戶終端500同樣會重新分配課堂服務器100。
綜上所述,本發(fā)明提出的實時課堂流媒體直播負載分配方法,使用負載分配服務器通過Nginx服務器將課堂ID相同的用戶終端分配連接到相同的課堂服務器,從而將特定課堂的用戶終端分配到同一臺服務器上,保證該課堂直播的同步性和穩(wěn)定性,使得同一課堂的用戶都具有相同的觀看環(huán)境。
雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬技術領域中具有通常知識者,在不脫離本發(fā)明的精神和范圍內,當可作各種的更動與潤飾。因此,本發(fā)明的保護范圍當視權利要求書所界定者為準。