專利名稱:一種適用大規(guī)模用戶點(diǎn)播的集群式流媒體服務(wù)器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集群式流媒體服務(wù)器系統(tǒng)。
背景技術(shù):
所謂流媒體是指采用流式傳輸?shù)姆绞皆贗nternet (互聯(lián)網(wǎng))播放的媒體格式。流媒體又叫流式媒體,它是指用一個(gè)視頻傳送服務(wù)器把節(jié)目當(dāng)成數(shù)據(jù)包發(fā)出,傳送到網(wǎng)絡(luò)上。 用戶通過解壓設(shè)備對(duì)這些數(shù)據(jù)進(jìn)行解壓后,節(jié)目就會(huì)像發(fā)送前那樣顯示出來。流媒體點(diǎn)播 服務(wù)主要包括音頻和視頻兩種服務(wù)。目前有很多較為成熟的流媒體點(diǎn)播服務(wù)系統(tǒng),他們可 以滿足有限用戶的音頻和視頻的點(diǎn)播需求。但是當(dāng)這些系統(tǒng)面臨大規(guī)模用戶的點(diǎn)播需求時(shí) 就顯示出計(jì)算能力不足,不能及時(shí)響應(yīng)等缺點(diǎn)。同時(shí)目前的很多系統(tǒng)在系統(tǒng)的可擴(kuò)展性,負(fù) 載均衡以及穩(wěn)定性方面都差強(qiáng)人意。有鑒于此,本發(fā)明設(shè)計(jì)與實(shí)現(xiàn)了一種適用于大規(guī)模用戶點(diǎn)播需求的集群式流媒體 服務(wù)器系統(tǒng)(以下簡(jiǎn)稱流媒體系統(tǒng))。該系統(tǒng)是國(guó)家精品課程集成系統(tǒng)中的項(xiàng)目,是國(guó)家精 品課程集成系統(tǒng)中所有視頻、音頻格式的課程內(nèi)容的服務(wù)支撐系統(tǒng)。它可以有效的為大規(guī) 模用戶的視屏和音頻點(diǎn)播需求提供服務(wù)。本發(fā)明涉及的集群系統(tǒng)是一種高性能計(jì)算的計(jì)算機(jī)系統(tǒng),它通過一組松散集成的 計(jì)算機(jī)軟件或硬件連接起來高度緊密地協(xié)作完成計(jì)算工作。在某種意義上,他們可以被看 作是一臺(tái)計(jì)算機(jī)。集群系統(tǒng)中的單個(gè)計(jì)算機(jī)通常稱為結(jié)點(diǎn),通常通過局域網(wǎng)連接。集群計(jì) 算機(jī)通常用來改進(jìn)單個(gè)計(jì)算機(jī)的計(jì)算速度和可靠性。本發(fā)明實(shí)現(xiàn)的集群式流媒體系統(tǒng)采用可擴(kuò)展流媒體服務(wù)器服務(wù)能力(包括最大 支持用戶數(shù)和存儲(chǔ)規(guī)模)的集群式體系結(jié)構(gòu)。這種體系結(jié)構(gòu)具有很好的擴(kuò)展性、負(fù)載均衡 性能和穩(wěn)定性,是適應(yīng)大規(guī)模用戶的流媒體點(diǎn)播需求的一種新的解決方案。
發(fā)明內(nèi)容
本發(fā)明提出了一種適用于大規(guī)模用戶點(diǎn)播的集群式流媒體服務(wù)器系統(tǒng)的實(shí)現(xiàn)方 法,這種適用于大規(guī)模用戶的集群式流媒體服務(wù)器系統(tǒng)能夠有效的為大量的用戶提供視頻 和音頻內(nèi)容的點(diǎn)播服務(wù)?!N適用于大規(guī)模用戶點(diǎn)播的集群式流媒體服務(wù)器系統(tǒng),其特征在于含有外部 網(wǎng)絡(luò),內(nèi)部以太網(wǎng)絡(luò)和光纖存儲(chǔ)網(wǎng)絡(luò),其中外部網(wǎng)絡(luò)包括教育網(wǎng)、電信網(wǎng)、網(wǎng)通在內(nèi)的外部寬帶網(wǎng),內(nèi)部以太網(wǎng)絡(luò),含有一個(gè)調(diào)度服務(wù)器、一個(gè)監(jiān)控服務(wù)器和至少一個(gè)流媒體服務(wù) 器,其中調(diào)度服務(wù)器,配置有開源數(shù)據(jù)庫(kù)軟件MySQL,開源緩存軟件Squid,開源的服務(wù)器 軟件Lighttpd,操作系統(tǒng)為L(zhǎng)inux,以及一個(gè)調(diào)度模塊、IP數(shù)據(jù)庫(kù)和本地負(fù)載信息庫(kù),所述 調(diào)度模塊依次按以下步驟進(jìn)行通過所述外部網(wǎng)絡(luò)接收用戶的IP信息并確認(rèn)身份后,判斷所述用戶所在的網(wǎng)絡(luò),
從所述本地負(fù)載信息數(shù)據(jù)庫(kù)調(diào)用各所述流媒體服務(wù)器結(jié)點(diǎn)的負(fù)載信息以及負(fù)載 均衡算法,選擇一個(gè)所述流媒體服務(wù)器并把所述流媒體該服務(wù)器的統(tǒng)一資源地址URL返回 給所述用戶,然后通過所述監(jiān)控服務(wù)器周期性的刷新本地負(fù)載信息; 流媒體服務(wù)器,配置有所述Squid軟件和Lighttpd軟件,操作系統(tǒng)為L(zhǎng)inux,還設(shè) 有一個(gè)緩存模塊、一個(gè)存儲(chǔ)模塊以及一個(gè)監(jiān)控模塊探針,并依次按以下步驟進(jìn)行通過千兆以太網(wǎng)交換機(jī)接受從所述調(diào)度模塊轉(zhuǎn)來的所述用戶的點(diǎn)播請(qǐng)求,搜索本 地緩存模塊,如命中則通過所述外部寬帶網(wǎng)向所述用戶發(fā)出,如未命中,則把所述用戶請(qǐng)求 轉(zhuǎn)發(fā)給所述存儲(chǔ)模塊,所述緩存模塊則通過所述光纖存儲(chǔ)網(wǎng)中的光纖交換機(jī)從本地磁盤陣 列存儲(chǔ)中取出目標(biāo)文件,返回給所述用戶,同時(shí)把目標(biāo)文件存于所述緩存模塊中,監(jiān)控服務(wù)器,配置有TOB應(yīng)用服務(wù)器軟件Tomcat以及所述的MySQL軟件,操作系 統(tǒng)為Windows Server,所述監(jiān)控服務(wù)器中的流量監(jiān)控模塊包括部署在所述監(jiān)控服務(wù)器上的 監(jiān)控端Monitor和部署在各所述調(diào)度服務(wù)器和所述監(jiān)控服務(wù)器上的監(jiān)控探針Probe,負(fù)責(zé) 周期性地把各所述流媒體服務(wù)器的當(dāng)前負(fù)載狀況匯報(bào)給所述監(jiān)控端Monitor,其中,至少包 括當(dāng)前結(jié)點(diǎn)的CPU、內(nèi)存、磁盤和網(wǎng)絡(luò)狀態(tài),存儲(chǔ)在所述本地負(fù)載信息數(shù)據(jù)庫(kù)中,供所述調(diào)度 服務(wù)器使用。本發(fā)明主要針對(duì)大規(guī)模用戶點(diǎn)播需求,可以方便的為使用者提供視頻和音頻內(nèi)容 的點(diǎn)播服務(wù),采用集群式流媒體體系結(jié)構(gòu)可以快速的響應(yīng)大規(guī)模用戶的點(diǎn)播請(qǐng)求。本發(fā)明 具有結(jié)構(gòu)簡(jiǎn)單、吞吐量大、響應(yīng)快速等優(yōu)點(diǎn)。從在國(guó)家精品課程集成項(xiàng)目中的應(yīng)用中看,本 發(fā)明體現(xiàn)了很高的穩(wěn)定性和可用性。
下面將通過參照附圖詳細(xì)描述本發(fā)明的示例性實(shí)例,使本領(lǐng)域的普通技術(shù)人員更 清楚本發(fā)明的上述及其他的特征和優(yōu)點(diǎn),附圖中,圖1為流媒體服務(wù)器系統(tǒng)體系結(jié)構(gòu)示意圖;圖2為服務(wù)器工作流程圖;圖3為用戶與各服務(wù)器各結(jié)點(diǎn)間數(shù)據(jù)流圖;圖4為流媒體服務(wù)器結(jié)點(diǎn)內(nèi)部以及與存儲(chǔ)磁盤陣列間數(shù)據(jù)流圖;圖5為流媒體系統(tǒng)的存儲(chǔ)系統(tǒng)體系結(jié)構(gòu)圖;圖6為存儲(chǔ)模塊的體系結(jié)構(gòu)示意圖;圖7為調(diào)度部分示意圖。圖8為監(jiān)控模塊內(nèi)部結(jié)構(gòu)。
具體實(shí)施例方式本發(fā)明提出的流媒體系統(tǒng)包括以下三類節(jié)點(diǎn)調(diào)度服務(wù)器結(jié)點(diǎn)、流媒體服務(wù)器結(jié) 點(diǎn)和監(jiān)控服務(wù)器結(jié)點(diǎn)。所述調(diào)度服務(wù)器結(jié)點(diǎn),用于根據(jù)用戶的IP信息判斷其所屬的網(wǎng)絡(luò),將用戶分配到 合適的流媒體服務(wù)器上,使用戶獲得質(zhì)量最好的服務(wù);并對(duì)各個(gè)流媒體服務(wù)器進(jìn)行負(fù)載均 衡,防止個(gè)別結(jié)點(diǎn)負(fù)載過重造成服務(wù)質(zhì)量下降;
所述流媒體服務(wù)器結(jié)點(diǎn),用于對(duì)用戶直接提供流媒體服務(wù),并通過緩存軟件提高 訪問和傳輸速度,以及對(duì)服務(wù)器的存儲(chǔ)系統(tǒng)進(jìn)行管理;所述監(jiān)控服務(wù)器結(jié)點(diǎn),用于通過部署在流媒體服務(wù)器結(jié)點(diǎn)上的監(jiān)控探針,獲得該 流媒體服務(wù)器結(jié)點(diǎn)當(dāng)前的負(fù)載信息,并將這些信息保存在本地的數(shù)據(jù)庫(kù)中,供調(diào)度系統(tǒng)的 調(diào)度算法參考;同時(shí)提供內(nèi)部訪問的Web查詢頁(yè)面,供開發(fā)人員查詢系統(tǒng)資源占用情況。所述調(diào)度服務(wù)器結(jié)點(diǎn)上部署一個(gè)調(diào)度模塊。所述流媒體服務(wù)器結(jié)點(diǎn)上部署一個(gè)緩存模塊、一個(gè)存儲(chǔ)模塊、一個(gè)監(jiān)控模塊探針。所述監(jiān)控服務(wù)器結(jié)點(diǎn)上部署一個(gè)監(jiān)控模塊的監(jiān)控接收端。所述調(diào)度模塊,用于根據(jù)用戶的IP信息判斷其所屬的網(wǎng)絡(luò),將用戶分配到合適的 流媒體服務(wù)器上;并負(fù)責(zé)各個(gè)流媒體服務(wù)器的負(fù)載均衡,防止個(gè)別結(jié)點(diǎn)負(fù)載過重造成服務(wù) 質(zhì)量下降。所述緩存模塊,用于為用戶提供寬帶流媒體服務(wù),通過調(diào)度、緩存等技術(shù),提高系 統(tǒng)資源的利用率,從而提高用戶感受;所述存儲(chǔ)模塊,用于連接所述緩存服務(wù)模塊和SAN(存儲(chǔ)域網(wǎng)絡(luò),Storage Area Network,下簡(jiǎn)稱SAN)存儲(chǔ)系統(tǒng),并為用戶提供寬帶流媒體服務(wù)并管理SAN存儲(chǔ)系統(tǒng);所述監(jiān)控模塊探針,用于監(jiān)控所述流媒體服務(wù)器結(jié)點(diǎn)當(dāng)前的負(fù)載情況,并發(fā)送給 監(jiān)控接收端。所述監(jiān)控模塊的監(jiān)控接收端,用于接收所有流媒體服務(wù)器結(jié)點(diǎn)的負(fù)載狀況,并將 這些信息保存在本地?cái)?shù)據(jù)庫(kù)中,供調(diào)度服務(wù)器作為負(fù)載均衡算法的數(shù)據(jù),供管理員查詢和 使用。所述調(diào)度服務(wù)器結(jié)點(diǎn)的配置軟件為MySQL (—種開源的數(shù)據(jù)庫(kù)軟件)、Squid (—種 開源的緩存軟件)、Lighttpd (—種開源的服務(wù)器軟件),操作系統(tǒng)為L(zhǎng)inux。所述流媒體服務(wù)器結(jié)點(diǎn)的配置軟件為Squid、Lighttpd,操作系統(tǒng)為L(zhǎng)inux。
所述監(jiān)控服務(wù)器結(jié)點(diǎn)的配置軟件為MySQLJomcat ( 一種常用的TOB應(yīng)用服務(wù)器軟 件)、JDK(Java語(yǔ)言的開發(fā)套件),操作系統(tǒng)為Windowsserver 2003。下面本發(fā)明將結(jié)合說明書附圖來詳細(xì)說明流媒體系統(tǒng)的的具體實(shí)施方式
。通過這 些附圖,更容易本領(lǐng)域的普通技術(shù)人員了解本發(fā)明的設(shè)計(jì)和實(shí)現(xiàn)的過程。圖1顯示了流媒體系統(tǒng)的體系結(jié)構(gòu)示意圖。從網(wǎng)絡(luò)角度來看,流媒體系統(tǒng)分為 三個(gè)網(wǎng)絡(luò)系統(tǒng)外部網(wǎng)絡(luò)、內(nèi)部以太網(wǎng)絡(luò)和光纖存儲(chǔ)網(wǎng)絡(luò)。外部網(wǎng)絡(luò)指外部網(wǎng)絡(luò)指面向 Internet的帶寬資源,包括教育網(wǎng)、電信和網(wǎng)通三種資源;內(nèi)部以太網(wǎng)絡(luò)采用千兆以太網(wǎng) 絡(luò),負(fù)責(zé)流媒體系統(tǒng)內(nèi)部各個(gè)結(jié)點(diǎn)之間的通信和傳輸;光纖存儲(chǔ)網(wǎng)絡(luò)是SAN(存儲(chǔ)域網(wǎng)絡(luò)) 存儲(chǔ)系統(tǒng)專用的存儲(chǔ)網(wǎng)絡(luò)。如前所述,圖1顯示了流媒體系統(tǒng)的三類功能結(jié)點(diǎn)調(diào)度服務(wù)器結(jié)點(diǎn)、流媒體服務(wù) 器結(jié)點(diǎn)和監(jiān)控服務(wù)器結(jié)點(diǎn)。調(diào)度服務(wù)器結(jié)點(diǎn)一方面根據(jù)用戶的IP信息判斷其所屬的網(wǎng)絡(luò) (教育網(wǎng)、電信還是網(wǎng)通),將用戶分配到合適的流媒體服務(wù)器上,使用戶獲得質(zhì)量最好的 服務(wù);另一方面要對(duì)各個(gè)流媒體服務(wù)器進(jìn)行負(fù)載均衡,防止個(gè)別結(jié)點(diǎn)負(fù)載過重造成服務(wù)質(zhì) 量下降。流媒體服務(wù)器結(jié)點(diǎn)對(duì)用戶直接提供流媒體服務(wù),并通過緩存軟件提高訪問和傳輸 速度,以及對(duì)服務(wù)器的存儲(chǔ)系統(tǒng)進(jìn)行管理。監(jiān)控服務(wù)器結(jié)點(diǎn)通過部署在流媒體服務(wù)器結(jié)點(diǎn) 上的監(jiān)控探針,獲得該流媒體服務(wù)器結(jié)點(diǎn)當(dāng)前的負(fù)載信息并將這些信息保存在本地的數(shù)據(jù)庫(kù)中,供調(diào)度系統(tǒng)的調(diào)度算法參考;同時(shí)提供內(nèi)部訪問的Web查詢頁(yè)面,供開發(fā)人員查詢系 統(tǒng)資源占用情況。圖2中給出了流媒體系統(tǒng)中服務(wù)器的工作流程。解釋如下 用戶從點(diǎn)播到實(shí)際收看到視頻的過程如下1.用戶訪問媒體門戶網(wǎng)站2.門戶網(wǎng)站將媒體URL以html頁(yè)面的形式返回給用戶3.用戶根據(jù)感興趣的媒體內(nèi)容,按照其URL訪問調(diào)度服務(wù)器
4.調(diào)度服務(wù)器選擇一個(gè)合適的服務(wù)器,并將其URL返回給用戶5.用戶使用4得到的URL訪問相應(yīng)的流媒體服務(wù)器6.流媒體服務(wù)器按照用戶請(qǐng)求推送流媒體文件數(shù)據(jù) 服務(wù)器內(nèi)部的工作過程如下(不包括門戶網(wǎng)站交互部分)1.調(diào)度服務(wù)器接收到用戶的請(qǐng)求2.調(diào)度服務(wù)器一方面根據(jù)用戶IP選擇網(wǎng)絡(luò),另一方面根據(jù)從監(jiān)控服務(wù)器獲得的 各流媒體服務(wù)器結(jié)點(diǎn)的負(fù)載信息調(diào)用負(fù)載均衡算法,選擇一個(gè)合適的服務(wù)器并將其URL返 回給用戶3.流媒體服務(wù)器緩存模塊根據(jù)接收到的用戶請(qǐng)求,搜索本地緩存,如命中則向用 戶推送數(shù)據(jù)4.如未命中,則將用戶請(qǐng)求轉(zhuǎn)給下層的存儲(chǔ)模塊,并通過存儲(chǔ)模塊從其本地磁盤 陣列存儲(chǔ)系統(tǒng)中取出目標(biāo)文件,返回給用戶,同時(shí)把目標(biāo)文件緩存在本地的緩存池中。5.監(jiān)控服務(wù)器定時(shí)通過部署在各流媒體服務(wù)器上的監(jiān)控探針獲得該流媒體服務(wù) 器當(dāng)前的負(fù)載信息,存儲(chǔ)在其本地?cái)?shù)據(jù)庫(kù)中供調(diào)度服務(wù)器或管理人員使用或查看圖3顯示了用戶與各服務(wù)器間的數(shù)據(jù)流圖。圖4顯示了流媒體服務(wù)器節(jié)點(diǎn)內(nèi)部以 及與存儲(chǔ)磁盤陣列間的數(shù)據(jù)流圖。如圖4中所示,最終返回給用戶的是流媒體數(shù)據(jù),它可能 來自本地緩存池,也可能是來自通過存儲(chǔ)模塊從存儲(chǔ)磁盤陣列獲得的流媒體數(shù)據(jù)。其中緩 存模塊的設(shè)計(jì)和實(shí)現(xiàn)過程在圖5顯示。圖5為流媒體系統(tǒng)的存儲(chǔ)系統(tǒng)體系結(jié)構(gòu)圖。其中包括緩存模塊、存儲(chǔ)模塊以及SAN 存儲(chǔ)系統(tǒng)三個(gè)主要部分。其中SAN存儲(chǔ)系統(tǒng)前面已經(jīng)介紹,對(duì)于存儲(chǔ)模塊將在附圖6中介 紹,這里主要介紹緩存模塊。緩存模塊需要維護(hù)本地緩存池,以及與用戶和存儲(chǔ)模塊進(jìn)行通 信。當(dāng)用戶請(qǐng)求到來時(shí),緩存模塊首先在本地的緩沖池中搜索目標(biāo)文件,如果本地命中,就 直接把目標(biāo)文件返回給用戶,否則緩存模塊把請(qǐng)求轉(zhuǎn)給下層的存儲(chǔ)模塊,并通過存儲(chǔ)模塊 從SAN存儲(chǔ)系統(tǒng)中取出目標(biāo)文件,返回給用戶,同時(shí)把目標(biāo)文件緩存在本地的緩存池中。本系統(tǒng)采用Squid作為緩存軟件。Squid是一個(gè)高性能的代理緩存服務(wù)器,可以 用來緩沖Internet數(shù)據(jù),Squid支持FTP (文件傳輸協(xié)議)、gopher (網(wǎng)際Gopher協(xié)議)和 HTTP (超文本傳輸協(xié)議)協(xié)議。和一般的代理緩存軟件不同,Squid用一個(gè)單獨(dú)的、非模塊 化的、1/0(輸入輸出)驅(qū)動(dòng)的進(jìn)程來處理所有的客戶端請(qǐng)求。我們采用Squid作為緩存軟 件主要基于以下幾方面的考慮(1)功能強(qiáng)大,配置簡(jiǎn)單。Squid作為一款高性能的緩存軟 件,完全可以滿足我們項(xiàng)目需要,而且其配置文件結(jié)構(gòu)簡(jiǎn)單,易于上手;(2)軟件成熟,易于 維護(hù)。Squid作為一款開源軟件,已經(jīng)推出多個(gè)穩(wěn)定版本,而且有很多組織和個(gè)人為其提供 維護(hù)、升級(jí);(3)開源且免費(fèi),能夠節(jié)約大量資金,且免費(fèi)獲得最新的軟件版本,避免程序錯(cuò)誤帶來的困擾。圖6為存儲(chǔ)模塊的體系結(jié)構(gòu)示意圖。存儲(chǔ)模塊內(nèi)部結(jié)構(gòu)可以分為4個(gè)模塊,SAN模塊、http模塊、管理模塊、數(shù)據(jù)庫(kù)模塊。存儲(chǔ)流媒體文件,主要有SAN模塊完成,同時(shí)需要數(shù) 據(jù)庫(kù)模塊記錄流媒體文件的具體存儲(chǔ)位置,以便于訪問和管理;提供http流媒體服務(wù),主 要有http模塊完成,同時(shí)需要SAN模塊提供流媒體文件;管理流媒體文件,主要由管理模塊 完成,同時(shí)需要更新SAN模塊上的文件以及數(shù)據(jù)庫(kù)模塊里的表項(xiàng);數(shù)據(jù)庫(kù)模塊負(fù)責(zé)記錄流 媒體文件的詳細(xì)信息。本系統(tǒng)采用Iighttpd作為HTTP服務(wù)器軟件。Iighttpd是一款的開源軟件,可以提 供一個(gè)專門針對(duì)高性能網(wǎng)站,安全、快速、兼容性好并且靈活的web服務(wù)器環(huán)境。同時(shí)具有 非常低的內(nèi)存開銷,CPU占用率低,效能好,以及豐富的模塊等特點(diǎn)。本系統(tǒng)采用Iighttpd 主要的原因有以下三個(gè)(1)更快的速度;更少的資源占用率;(2)支持更多的同時(shí)訪問人 數(shù),這對(duì)于流媒體服務(wù)十分重要。(3)開源且免費(fèi),能夠節(jié)約大量資金,且免費(fèi)獲得最新的軟 件版本,避免程序錯(cuò)誤帶來的困擾。圖7示出了系統(tǒng)調(diào)度部分的示意圖。調(diào)度模塊接收到用戶的請(qǐng)求后,根據(jù)用戶IP 和自身的負(fù)載均衡算法邏輯,返回給用戶合適的URL(統(tǒng)一資源定位符);并周期性的從監(jiān) 控服務(wù)器數(shù)據(jù)庫(kù)讀取各流媒體服務(wù)器結(jié)點(diǎn)當(dāng)前的負(fù)載信息,寫入本地?cái)?shù)據(jù)庫(kù)供負(fù)載均衡算 法調(diào)用。調(diào)度模塊需要安裝MySQL (—種開源的數(shù)據(jù)庫(kù)軟件),MySQL-server (MySQL的服 務(wù)器軟件)以及MySQL-devel (MySQL的開發(fā)端軟件)等包。啟動(dòng)MySQL,建立數(shù)據(jù)庫(kù)ipnew 負(fù)責(zé)存儲(chǔ)調(diào)度模塊的調(diào)度信息。在數(shù)據(jù)庫(kù)ipnew下建立表ipnew用于存儲(chǔ)用戶的IP地址; 表server用于存儲(chǔ)流媒體系統(tǒng)的服務(wù)器信息;表overload用于存儲(chǔ)流媒體系統(tǒng)的服務(wù)器 的負(fù)載信息,比如系統(tǒng)時(shí)間、CPU使用信息、內(nèi)存使用信息、網(wǎng)絡(luò)使用信息以及輸入輸出信息 等;表log用于記錄系統(tǒng)工作日志。調(diào)度模塊采用一段C語(yǔ)言編寫fastcgi程序(CGI,Common Gatawayinterface的 一種實(shí)現(xiàn)方式)程序來實(shí)現(xiàn)對(duì)用戶請(qǐng)求IP及請(qǐng)求Url的解析,然后在本地?cái)?shù)據(jù)庫(kù)中查詢得 到IP類型及服務(wù)器負(fù)載情況,然后根據(jù)這些信息選擇一個(gè)當(dāng)前網(wǎng)絡(luò)類型與用戶相同且負(fù) 載最輕的一個(gè)作為服務(wù)結(jié)點(diǎn),并生成新的url (統(tǒng)一資源定位符)返回302應(yīng)答(Http 302 Found應(yīng)帶,即客戶請(qǐng)求的文檔在其他地方,其地址由臨時(shí)性的URL給出)。圖8為監(jiān)控模塊內(nèi)部結(jié)構(gòu)示意圖。監(jiān)控模塊包括部署在監(jiān)控服務(wù)器結(jié)點(diǎn)上的監(jiān)控 端Monitor和部署在流媒體系統(tǒng)各服務(wù)器結(jié)點(diǎn)(如前所述的調(diào)度服務(wù)器、流媒體服務(wù)器和 監(jiān)控服務(wù)器)上的監(jiān)控探針Probe。監(jiān)控探針Probe負(fù)責(zé)周期性將各流媒體服務(wù)器結(jié)點(diǎn)的 負(fù)載狀況匯報(bào)給監(jiān)控端Monitor,具體包括監(jiān)控當(dāng)前結(jié)點(diǎn)的CPU,內(nèi)存,磁盤,和網(wǎng)絡(luò)的狀態(tài) 等;監(jiān)控端Monitor將這些信息存在本地的數(shù)據(jù)庫(kù)中,供調(diào)度模塊的調(diào)度算法參考,同時(shí)提 供內(nèi)部訪問的Web查詢頁(yè)面,供開發(fā)人員查詢系統(tǒng)資源占用情況。
權(quán)利要求
一種適用于大規(guī)模用戶點(diǎn)播的集群式流媒體服務(wù)器系統(tǒng),其特征在于含有外部網(wǎng)絡(luò),內(nèi)部以太網(wǎng)絡(luò)和光纖存儲(chǔ)網(wǎng)絡(luò),其中外部網(wǎng)絡(luò)包括教育網(wǎng)、電信網(wǎng)、網(wǎng)通在內(nèi)的外部寬帶網(wǎng),內(nèi)部以太網(wǎng)絡(luò),含有一個(gè)調(diào)度服務(wù)器、一個(gè)監(jiān)控服務(wù)器和至少一個(gè)流媒體服務(wù)器,其中調(diào)度服務(wù)器,配置有開源數(shù)據(jù)庫(kù)軟件MySQL,開源緩存軟件Squid,開源的服務(wù)器軟件Lighttpd,操作系統(tǒng)為L(zhǎng)inux,以及一個(gè)調(diào)度模塊、IP數(shù)據(jù)庫(kù)和本地負(fù)載信息庫(kù),所述調(diào)度模塊依次按以下步驟進(jìn)行通過所述外部網(wǎng)絡(luò)接收用戶的IP信息并確認(rèn)身份后,判斷所述用戶所在的網(wǎng)絡(luò),從所述本地負(fù)載信息數(shù)據(jù)庫(kù)調(diào)用各所述流媒體服務(wù)器結(jié)點(diǎn)的負(fù)載信息以及負(fù)載均衡算法,選擇一個(gè)所述流媒體服務(wù)器并把所述流媒體該服務(wù)器的統(tǒng)一資源地址URL返回給所述用戶,然后通過所述監(jiān)控服務(wù)器周期性的刷新本地負(fù)載信息;流媒體服務(wù)器,配置有所述Squid軟件和Llghttpd軟件,操作系統(tǒng)為L(zhǎng)inux,還設(shè)有一個(gè)緩存模塊、一個(gè)存儲(chǔ)模塊以及一個(gè)監(jiān)控模塊探針,并依次按以下步驟進(jìn)行通過千兆以太網(wǎng)交換機(jī)接受從所述調(diào)度模塊轉(zhuǎn)來的所述用戶的點(diǎn)播請(qǐng)求,搜索本地緩存模塊,如命中則通過所述外部寬帶網(wǎng)向所述用戶發(fā)出,如未命中,則把所述用戶請(qǐng)求轉(zhuǎn)發(fā)給所述存儲(chǔ)模塊,所述緩存模塊則通過所述光纖存儲(chǔ)網(wǎng)中的光纖交換機(jī)從本地磁盤陣列存儲(chǔ)中取出目標(biāo)文件,返回給所述用戶,同時(shí)把目標(biāo)文件存于所述緩存模塊中,監(jiān)控服務(wù)器,配置有WEB應(yīng)用服務(wù)器軟件Tomcat以及所述的MySQL軟件,操作系統(tǒng)為Windows Server,所述監(jiān)控服務(wù)器中的流量監(jiān)控模塊包括部署在所述監(jiān)控服務(wù)器上的監(jiān)控端Monitor和部署在各所述調(diào)度服務(wù)器和所述監(jiān)控服務(wù)器上的監(jiān)控探針Probe,負(fù)責(zé)周期性地把各所述流媒體服務(wù)器的當(dāng)前負(fù)載狀況匯報(bào)給所述監(jiān)控端Monitor,其中,至少包括當(dāng)前結(jié)點(diǎn)的CPU、內(nèi)存、磁盤和網(wǎng)絡(luò)狀態(tài),存儲(chǔ)在所述本地負(fù)載信息數(shù)據(jù)庫(kù)中,供所述調(diào)度服務(wù)器使用。
全文摘要
一種適用于大規(guī)模用戶點(diǎn)播的集群式流媒體服務(wù)器系統(tǒng)屬于流媒體服務(wù)技術(shù)領(lǐng)域,其特征在于,含有三類服務(wù)器結(jié)點(diǎn)調(diào)度服務(wù)器用于根據(jù)用戶的IP信息判斷其所屬的網(wǎng)絡(luò),將用戶分配到合適的流媒體服務(wù)器上,使用戶獲得最好服務(wù),并對(duì)各個(gè)流媒體服務(wù)器進(jìn)行負(fù)載均衡;流媒體服務(wù)器對(duì)用戶直接提供流媒體服務(wù),并通過緩存軟件提高訪問和傳輸速度,以及管理服務(wù)器的存儲(chǔ)系統(tǒng);監(jiān)控服務(wù)器通過部署在流媒體服務(wù)器結(jié)點(diǎn)上的監(jiān)控探針,獲得該流媒體服務(wù)器結(jié)點(diǎn)當(dāng)前的負(fù)載信息,并將這些信息保存在本地?cái)?shù)據(jù)庫(kù)中,同時(shí)提供內(nèi)部訪問的Web查詢頁(yè)面,供開發(fā)人員查詢系統(tǒng)資源占用情況。本發(fā)明為使用者提供視頻和音頻內(nèi)容的點(diǎn)播服務(wù),結(jié)構(gòu)簡(jiǎn)單,使用方便。
文檔編號(hào)H04L29/06GK101841526SQ20101011764
公開日2010年9月22日 申請(qǐng)日期2010年3月4日 優(yōu)先權(quán)日2010年3月4日
發(fā)明者劉文杰, 葉銀, 張?zhí)鞓? 都志輝 申請(qǐng)人:清華大學(xué)