專利名稱:基于策略的服務(wù)負(fù)載均衡方法
技術(shù)領(lǐng)域:
本發(fā)明涉及內(nèi)容傳送網(wǎng)絡(luò)(CDN),尤其涉及一種基于策略的服務(wù)負(fù)載均衡方法。
背景技術(shù):
內(nèi)容傳送網(wǎng)絡(luò)CDN是將內(nèi)容在網(wǎng)絡(luò)中優(yōu)化分布,使得最熱門的內(nèi)容分布在離用戶最近的 邊緣節(jié)點(diǎn)。當(dāng)用戶點(diǎn)播內(nèi)容時(shí),全局重定向器優(yōu)先使用離用戶最近且有內(nèi)容的節(jié)點(diǎn)為用戶提 供服務(wù)。 一般一個(gè)節(jié)點(diǎn)要能支持幾千用戶,流媒體服務(wù)器除了為用戶提供視頻服務(wù)外,還要 承擔(dān)諸如內(nèi)容下拉、上推、錄播等很多任務(wù),這樣對流媒體服務(wù)器的服務(wù)能力提出了很高的 要求,因此為了解決這個(gè)問題,考慮用多臺流服務(wù)器為用戶服務(wù),即將用戶的訪問分布到多 臺服務(wù)器上,不僅增加了本節(jié)點(diǎn)能夠服務(wù)的用戶數(shù),而且使得每臺服務(wù)器的負(fù)載相對較輕。
當(dāng)前,解決上述問題有一種DNS負(fù)載均衡方法,該方法是在對同一域名解析時(shí),可以得 到多個(gè)IP地址,即對應(yīng)多臺服務(wù)器,它將對同一域名的請求分給了多個(gè)具有獨(dú)立IP地址的 服務(wù)器,這種方法簡單、易行,但缺點(diǎn)也很明顯,它無法得知服務(wù)器之間的差異,也不能了 解到服務(wù)器當(dāng)前狀態(tài),無法將用戶訪問引導(dǎo)到當(dāng)前負(fù)載較輕的設(shè)備上,而且要求運(yùn)營商申請 域名。我們這里提出的負(fù)載均衡方法有效地解決了這些問題。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)存在的缺陷和不足,本發(fā)明提供一種能將用戶訪問引導(dǎo)到負(fù)載較輕的服務(wù) 器上的高效率的基于策略的服務(wù)負(fù)載均衡方法。
為了達(dá)到上述發(fā)明目的,本發(fā)明基于策略的服務(wù)負(fù)載均衡方法,包括以下步驟-
(1) 總控進(jìn)程記錄每臺服務(wù)器的負(fù)載狀態(tài);
(2) 用戶點(diǎn)播服務(wù)時(shí),選擇負(fù)載最輕的服務(wù)器為用戶服務(wù)。 上述的基于策略的服務(wù)負(fù)載均衡方法中,所述步驟(1)包括
(11) 總控進(jìn)程將節(jié)點(diǎn)內(nèi)每臺服務(wù)器的性能信息記錄在設(shè)備性能表中,將節(jié)點(diǎn)內(nèi)的頻道 信息記錄在頻道表中,在會話信息表為每臺服務(wù)器的會話信息分配表項(xiàng);
(12) 定時(shí)更新每臺服務(wù)器的狀態(tài)信息。 上述的基于策略的服務(wù)負(fù)載均衡方法中,步驟(12)包括(121) 設(shè)備性能表定時(shí)更新每臺服務(wù)器的性能信息;(122) 定時(shí)掃描會話信息表,刪除超過給定值仍不活動的會話信息;(123) 定時(shí)掃描設(shè)備性能表,將超過給定值仍未收到性能消息的服務(wù)器置為不可用。上述的基于策略的服務(wù)負(fù)載均衡方法中,當(dāng)節(jié)點(diǎn)內(nèi)有服務(wù)器添加或刪除時(shí),重建設(shè)備性能表和會話信息表;有頻道添加或刪除時(shí),重建頻道表。上述的基于策略的服務(wù)負(fù)載均衡方法中,所述步驟(2)包括(21) 如果用戶點(diǎn)播頻道服務(wù),進(jìn)入步驟(22);如果用戶點(diǎn)播內(nèi)容服務(wù),進(jìn)入步驟(23);(22) 根據(jù)RTSP請求解析出頻道ID,遍歷頻道表,找到該頻道對應(yīng)的可用服務(wù)器,進(jìn) 入步驟(23);(23) 遍歷設(shè)備性能表,選擇負(fù)載最輕的可用服務(wù)器為用戶服務(wù);(24) 在會話信息表中記錄該服務(wù)器本次服務(wù)的會話信息,更新該服務(wù)器在設(shè)備性能表 中的當(dāng)前用戶數(shù);(25) 服務(wù)結(jié)束后,在會話信息表中刪除該服務(wù)器本次服務(wù)的會話信息,更新該服務(wù)器 在設(shè)備性能表中的當(dāng)前用戶數(shù)。上述的基于策略的服務(wù)負(fù)載均衡方法中,步驟(23)包括(231) 遍歷設(shè)備性能表,選定負(fù)載最輕的可用服務(wù)器;(232) 生成針對選定服務(wù)器的新URL,并將該URL及重定向狀態(tài)碼返回給用戶;(233) 用戶與選定服務(wù)器建立連接,選定服務(wù)器為用戶提供點(diǎn)播服務(wù)。上述的基于策略的服務(wù)負(fù)載均衡方法中,性能信息包括設(shè)備ID、設(shè)備IP、當(dāng)前用戶數(shù)、 當(dāng)前CPU占用率;頻道信息包括頻道ID、頻道所在設(shè)備、頻道映射模式;表項(xiàng)包括設(shè)備ID 和指向哈希表的指針。上述的基于策略的服務(wù)負(fù)載均衡方法中,所述負(fù)載最輕是指該服務(wù)器正在服務(wù)的用戶數(shù)、 設(shè)備CPU占用率最低。本發(fā)明基于策略的服務(wù)負(fù)載均衡方法,通過查詢流媒體服務(wù)器的性能信息及當(dāng)前會話信 息動態(tài)確定最優(yōu)服務(wù)器;可以通過直接獲取底層設(shè)備的運(yùn)行狀態(tài)、負(fù)載狀況及通過査詢會話 信息表獲取當(dāng)前的服務(wù)信息,為負(fù)載均衡提供準(zhǔn)確的設(shè)備信息和服務(wù)信息;不需要價(jià)格昂貴 的L4/7層交換機(jī)本地負(fù)載均衡的支持。因此,本發(fā)明提供了一種高效率的負(fù)載均衡方法,且 成本低,使節(jié)點(diǎn)內(nèi)整體負(fù)載均勻分布,達(dá)到真正的負(fù)載均衡。
圖l是本發(fā)明的負(fù)載均衡流程圖;圖2是本發(fā)明的負(fù)載均衡總控進(jìn)程用到的會話信息表結(jié)構(gòu)圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)說明本發(fā)明的要點(diǎn)為總控進(jìn)程維護(hù)一張?jiān)O(shè)備性能表??偪剡M(jìn)程維護(hù)一張頻道表??偪剡M(jìn)程維護(hù)一張會話信息表。動態(tài)選擇最優(yōu)設(shè)備的策略是綜合考慮設(shè)備當(dāng)前正在服務(wù)的用戶數(shù)、設(shè)備CPU占用率等信 息計(jì)算出該設(shè)備的性能值。對于內(nèi)容點(diǎn)播,遍歷設(shè)備性能表,過濾掉不可用設(shè)備,剩下的可用且性能值最小的設(shè)備即是最優(yōu)設(shè)備;對于頻道點(diǎn)播,需根據(jù)RTSP請求解析出頻道ID,然后 遍歷頻道表,計(jì)算出頻道所在設(shè)備的性能值,可用且性能值最小的設(shè)備即是最優(yōu)設(shè)備。本發(fā)明所采用的方法為A、 總控進(jìn)程維護(hù)一張?jiān)O(shè)備性能(含狀態(tài))表,設(shè)備性能表是一個(gè)一維數(shù)組,存儲了設(shè) 備ID、設(shè)備IP、當(dāng)前用戶數(shù)、當(dāng)前CPU占用率等信息。初始化時(shí),為本節(jié)點(diǎn)掛載的每臺流 媒體服務(wù)器分配一表項(xiàng),狀態(tài)置為不可用,然后發(fā)消息査詢每臺服務(wù)器的性能信息,收到性 能査詢結(jié)果填入相應(yīng)的設(shè)備表項(xiàng);當(dāng)節(jié)點(diǎn)上有設(shè)備添加或刪除時(shí),重建設(shè)備性能表。B、 流媒體服務(wù)器定時(shí)上報(bào)性能信息,根據(jù)性能上報(bào)信息中的設(shè)備ID查找設(shè)備性能表,找 到相應(yīng)的表項(xiàng),將性能信息填入。同時(shí)掃描會話信息表,刪除超過給定值仍不活動的會話信 息,定時(shí)掃描設(shè)備性能表,對于超過給定值未收到性能消息的設(shè)備將其狀態(tài)置為不可用。C、 總控進(jìn)程維護(hù)一張頻道表,記錄本節(jié)點(diǎn)所有的頻道信息,包括頻道ID、頻道所在設(shè) 備、頻道映射模式(單播還是組播)等信息;當(dāng)節(jié)點(diǎn)上有頻道添加或刪除時(shí),重建頻道表。D、 總控進(jìn)程維護(hù)一張會話信息表,記錄所有活動的會話信息。會話信息表的結(jié)構(gòu)如圖2
所示,每個(gè)設(shè)備占用一項(xiàng),表項(xiàng)的內(nèi)容為設(shè)備ID和指向哈希表的指針。初始化時(shí),為本節(jié)點(diǎn) 掛載的每臺流媒體服務(wù)器在會話信息表中分配一表項(xiàng),同時(shí)分配一哈希表用于存儲該服務(wù)器 所提供的所有服務(wù)的會話信息。服務(wù)開始時(shí),找到服務(wù)器所對應(yīng)的哈希表,向哈希表中插入 會話信息,更新設(shè)備性能表中的當(dāng)前用戶數(shù),服務(wù)結(jié)束時(shí),從哈希表中刪除會話信息,更新 設(shè)備性能表中的當(dāng)前用戶數(shù)。當(dāng)添加或刪除設(shè)備時(shí),重建會話信息表。對于新加設(shè)備,為該 設(shè)備分配一哈希表,對于刪除的設(shè)備,結(jié)束該設(shè)備所有會話信息,然后銷毀哈希表。E、 動態(tài)選擇最優(yōu)設(shè)備的策略是綜合考慮設(shè)備當(dāng)前正在服務(wù)的用戶數(shù)、設(shè)備CPU占用率 等信息計(jì)算出該設(shè)備的性能值。對于內(nèi)容點(diǎn)播,遍歷設(shè)備性能表,過濾掉不可用設(shè)備,剩下 的可用且性能值最小的設(shè)備即是最優(yōu)設(shè)備;對于頻道點(diǎn)播,需根據(jù)RTSP請求解析出頻道ID, 然后遍歷頻道表,計(jì)算出頻道所在設(shè)備的性能值,可用且性能值最小的設(shè)備即是最優(yōu)設(shè)備。F、 每次收到RTSP請求,按照E所述策略動態(tài)選出最優(yōu)設(shè)備,根據(jù)URL拼裝規(guī)則生成 新的URL,返回新URL及重定向狀態(tài)碼給客戶端,本次負(fù)載均衡會話結(jié)束。圖l是負(fù)載均衡的工作時(shí)序圖。下面介紹其流程-1、 客戶端(在IPTV系統(tǒng)中, 一般是機(jī)頂盒)向總控進(jìn)程發(fā)起RTSP請求。2、 總控進(jìn)程接受請求,開始負(fù)載均衡流程。3、 基本策略是綜合考慮設(shè)備當(dāng)前用戶數(shù)、CPU占用率等信息計(jì)算出該設(shè)備性能值,根 據(jù)該性能值來確定設(shè)備當(dāng)前負(fù)載狀態(tài)。4、 點(diǎn)播分兩種內(nèi)容點(diǎn)播和頻道點(diǎn)播,流程略有不同,下面分別介紹① 、對于內(nèi)容點(diǎn)播,遍歷設(shè)備性能表,過濾掉不可用設(shè)備,在可用設(shè)備動態(tài)選擇性能值 最小的設(shè)備,該設(shè)備即為最優(yōu)設(shè)備。② 、對于頻道點(diǎn)播,根據(jù)RTSP請求解析出頻道ID,然后遍歷頻道表,在頻道所在設(shè)備 中動態(tài)選擇性能值最小的設(shè)備,該設(shè)備即為最優(yōu)設(shè)備。5、 得到最優(yōu)設(shè)備后,按照規(guī)定的URL拼裝規(guī)則拼裝URL。6、 將新生成的URL及重定向結(jié)果碼返回給客戶端。會話信息表的結(jié)構(gòu)如圖2所示,每個(gè)設(shè)備占用一項(xiàng),表項(xiàng)的內(nèi)容為設(shè)備ID和指向哈希表 的指針。初始化時(shí),為本節(jié)點(diǎn)掛載的每臺流媒體服務(wù)器在會話信息表中分配一表項(xiàng),同時(shí)分 配一哈希表用于存儲該服務(wù)器所提供的所有服務(wù)的會話信息。服務(wù)開始時(shí),找到服務(wù)器所對
應(yīng)的哈希表,向哈希表中插入會話信息,更新設(shè)備性能表中的當(dāng)前用戶數(shù),服務(wù)結(jié)束時(shí),從 哈希表中刪除會話信息,更新設(shè)備性能表中的當(dāng)前用戶數(shù)。當(dāng)添加或刪除設(shè)備時(shí),重建會話 信息表。對于新加設(shè)備,為該設(shè)備分配一哈希表,對于刪除的設(shè)備,結(jié)束該設(shè)備所有會話信 息,然后銷毀哈希表。
權(quán)利要求
1、一種基于策略的服務(wù)負(fù)載均衡方法,其特征在于包括以下步驟(1)總控進(jìn)程記錄每臺服務(wù)器的負(fù)載狀態(tài);(2)用戶點(diǎn)播服務(wù)時(shí),選擇負(fù)載最輕的服務(wù)器為用戶服務(wù)。
2、 如權(quán)利要求1所述的基于策略的服務(wù)負(fù)載均衡方法,其特征在于所述步驟(1)包括(11) 總控進(jìn)程將節(jié)點(diǎn)內(nèi)每臺服務(wù)器的性能信息記錄在設(shè)備性能表中,將節(jié)點(diǎn)內(nèi)的頻道 信息記錄在頻道表中,在會話信息表為每臺服務(wù)器的會話信息分配表項(xiàng);(12) 定時(shí)更新每臺服務(wù)器的狀態(tài)信息。
3、 如權(quán)利要求2所述的基于策略的服務(wù)負(fù)載均衡方法,其特征在于步驟(12)包括(121) 設(shè)備性能表定時(shí)更新每臺服務(wù)器的性能信息;(122) 定時(shí)掃描會話信息表,刪除超過給定值仍不活動的會話信息;(123) 定時(shí)掃描設(shè)備性能表,將超過給定值仍未收到性能消息的服務(wù)器置為不可用。
4、 如權(quán)利要求2所述的基于策略的服務(wù)負(fù)載均衡方法,其特征在于當(dāng)節(jié)點(diǎn)內(nèi)有服務(wù)器 添加或刪除時(shí),重建設(shè)備性能表和會話信息表;有頻道添加或刪除時(shí),重建頻道表。
5、 如權(quán)利要求l 、 2或3所述的基于策略的服務(wù)負(fù)載均衡方法,其特征在于所述步驟 (2)包括(21) 如果用戶點(diǎn)播頻道服務(wù),進(jìn)入步驟(22);如果用戶點(diǎn)播內(nèi)容服務(wù),進(jìn)入步驟(23);(22) 根據(jù)RTSP請求解析出頻道ID,遍歷頻道表,找到該頻道對應(yīng)的可用服務(wù)器,進(jìn) 入步驟(23);(23) 遍歷設(shè)備性能表,選擇負(fù)載最輕的可用服務(wù)器為用戶服務(wù);(24) 在會話信息表中記錄該服務(wù)器本次服務(wù)的會話信息,更新該服務(wù)器在設(shè)備性能表 中的當(dāng)前用戶數(shù);(25) 服務(wù)結(jié)束后,在會話信息表中刪除該服務(wù)器本次服務(wù)的會話信息,更新該服務(wù)器 在設(shè)備性能表中的當(dāng)前用戶數(shù)。
6、 如權(quán)利要求5所述的基于策略的服務(wù)負(fù)載均衡方法,其特征在于步驟(23)包括: (231) 遍歷設(shè)備性能表,選定負(fù)載最輕的可用服務(wù)器;(232) 生成針對選定服務(wù)器的新URL,并將該URL及重定向狀態(tài)碼返回給用戶;(233) 用戶與選定服務(wù)器建立連接,選定服務(wù)器為用戶提供點(diǎn)播服務(wù)。
7、 如權(quán)利要求2所述的基于策略的服務(wù)負(fù)載均衡方法,其特征在于性能信息包括設(shè)備 ID、設(shè)備IP、當(dāng)前用戶數(shù)、當(dāng)前CPU占用率;頻道信息包括頻道ID、頻道所在設(shè)備、頻道映 射模式;表項(xiàng)包括設(shè)備ID和指向哈希表的指針。
8、 如權(quán)利要求1所述的基于策略的服務(wù)負(fù)載均衡方法,其特征在于所述負(fù)載最輕是指 該服務(wù)器正在服務(wù)的用戶數(shù)、設(shè)備CPU占用率最低。
全文摘要
本發(fā)明公開了一種基于策略的服務(wù)負(fù)載均衡方法,針對現(xiàn)有內(nèi)容傳送網(wǎng)絡(luò)CDN無法得知服務(wù)器之間的差異,也不能了解到服務(wù)器當(dāng)前狀態(tài),無法將用戶訪問引導(dǎo)到當(dāng)前負(fù)載較輕的設(shè)備上的問題。本發(fā)明基于策略的服務(wù)負(fù)載均衡方法,包括以下步驟(1)總控進(jìn)程記錄每臺服務(wù)器的負(fù)載狀態(tài);(2)用戶點(diǎn)播服務(wù)時(shí),選擇負(fù)載最輕的服務(wù)器為用戶服務(wù)。本發(fā)明提供了一種高效率的負(fù)載均衡方法,且成本低,使節(jié)點(diǎn)內(nèi)整體負(fù)載均勻分布,達(dá)到真正的負(fù)載均衡。
文檔編號H04N7/173GK101119359SQ20061010398
公開日2008年2月6日 申請日期2006年8月1日 優(yōu)先權(quán)日2006年8月1日
發(fā)明者印和平, 王印龍, 捷 胡, 亮 郭 申請人:中興通訊股份有限公司