亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種分布式并行調(diào)度寬帶網(wǎng)絡(luò)服務(wù)器系統(tǒng)的制作方法

文檔序號:7685166閱讀:184來源:國知局
專利名稱:一種分布式并行調(diào)度寬帶網(wǎng)絡(luò)服務(wù)器系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)服務(wù)器,特別涉及寬帶網(wǎng)絡(luò)服務(wù)器,如寬帶視頻服務(wù)器、寬帶數(shù)據(jù)服務(wù)器等。
集群系統(tǒng)CLUSTER多臺服務(wù)器(高性能PC機(jī))以高速通用網(wǎng)絡(luò)互聯(lián)設(shè)備連接組成,并運行相關(guān)程序,統(tǒng)一調(diào)度,協(xié)調(diào)處理,實現(xiàn)高效并行處理的系統(tǒng)。具有能同時承擔(dān)盡量多個用戶/處理(請求)任務(wù),高可用性,高可擴(kuò)充性等特點。現(xiàn)有寬帶網(wǎng)絡(luò)服務(wù)器情況1.TurboClusterTurboCluster是一個企業(yè)級的集群方案,它允許在多個計算機(jī)上構(gòu)建高可用的、可擴(kuò)展的網(wǎng)絡(luò)。使用TurboCluster系統(tǒng)可以顯著地提高基于TCP/IP協(xié)議的多種網(wǎng)絡(luò)服務(wù)的服務(wù)質(zhì)量,這些服務(wù)包括Web、Mail、News和Ftp等。TurboCluster具有良好的可用性、可擴(kuò)展性和可管理性,集群內(nèi)部的實際服務(wù)器的數(shù)量可以擴(kuò)充,其結(jié)構(gòu)如圖1所示。當(dāng)客戶機(jī)向服務(wù)器集群系統(tǒng)發(fā)送一個請求時,該請求首先到達(dá)高級流量管理器,高級流量管理器通過一定的調(diào)度策略將此請求轉(zhuǎn)發(fā)到集群中的某一臺實際服務(wù)器上處理,最終的回應(yīng)請求將直接發(fā)送給客戶機(jī)。由于最終的回應(yīng)請求沒有通過高級瀏覽管理器而是直接發(fā)送給客戶,這樣大大減輕了高級流量管理器上的負(fù)載,從而降低了瓶頸產(chǎn)生的可能。TurboCluster中采用的調(diào)度策略有輪回(Round Robin)、加權(quán)輪回(Weighted Round Robin)、最少連接(Least Connection)。為了減少高級流量管理器產(chǎn)生失效的可能,TurboCluster為高級流量管理器準(zhǔn)備了一個備份機(jī)。該備份機(jī)不斷詢問管理器來確認(rèn)它正在正常工作,一旦發(fā)現(xiàn)主管理器已經(jīng)失效,備份機(jī)將接替它繼續(xù)工作。2.LinuxVirtualServerLinux虛擬服務(wù)器(Linux Virtual Server,LVS)建筑于實際的服務(wù)器集群之上,用戶看不到提供服務(wù)的多臺實際服務(wù)器,而只能看見一臺作為負(fù)載平衡器的服務(wù)器。實際的服務(wù)器通過高速局域網(wǎng)連接。實際服務(wù)器的前端是一臺負(fù)載平衡器,他將用戶的請求調(diào)度到實際服務(wù)器上完成,這樣看起來好像所有服務(wù)都是通過虛擬服務(wù)器來完成的。Linux虛擬服務(wù)器能夠提供良好的可擴(kuò)展性、可靠性和可用性。用戶可以透明地增加或減少一個節(jié)點,可以對實際服務(wù)器進(jìn)行監(jiān)測,如果發(fā)現(xiàn)有節(jié)點失敗就重新配置系統(tǒng)。Linux Virtual Server的結(jié)構(gòu)如圖2所示。客戶使用VIP(虛擬IP)地址訪問服務(wù)器。其負(fù)載平衡的方案為1)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)技術(shù)負(fù)載平衡器在收到服務(wù)請求(IP包)后,按負(fù)載平衡算法,確定實際服務(wù)器,把該連接信息寫入IP請求連接表,同時把該IP包的目的地址和端口號由VIP地址改為該服務(wù)器的IP地址和端口號,轉(zhuǎn)發(fā)該IP包,實際服務(wù)器在完成請求任務(wù)后,把應(yīng)答IP包送回負(fù)載平衡器,負(fù)載平衡器再把應(yīng)答IP包的源地址改為VIP地址并轉(zhuǎn)發(fā)到外部網(wǎng)絡(luò)。
2)IP隧道(IP-TUNNEL)技術(shù)負(fù)載平衡器在收到來自外部網(wǎng)絡(luò)的服務(wù)請求IP后,封裝源IP地址,然后以數(shù)據(jù)包形式,轉(zhuǎn)發(fā)到某一實際服務(wù)器,實際服務(wù)器在完成請求任務(wù)后,直接按源IP地址把結(jié)果返回發(fā)出服務(wù)請求的客戶機(jī),這種方法的負(fù)載平衡器不再承擔(dān)轉(zhuǎn)發(fā)返回IP包的任務(wù),負(fù)載就比NAT方法少了。
3)直接路由(DIRECT ROUTING)技術(shù)這種方法的LVS有所不同,負(fù)載平衡器和實際服務(wù)器都處于同一段局域網(wǎng),負(fù)載平衡器接受到客戶機(jī)的服務(wù)請求IP包,負(fù)載平衡器分配給某一實際服務(wù)器,然后直接修改鏈路層的MAC地址為該實際服務(wù)器的MAC地址,把IP包轉(zhuǎn)送到該實際服務(wù)器,在完成請求后,實際服務(wù)器也是直接把結(jié)果送到客戶機(jī)。這一策略進(jìn)一步減小了負(fù)載平衡器自身的負(fù)載。
從以上系統(tǒng)可以看出,為了最大限度地利用集群中的一切資源,集群系統(tǒng)需要具有動態(tài)負(fù)載平衡功能,它監(jiān)視集群中的實際節(jié)點的負(fù)載情況并動態(tài)地進(jìn)行調(diào)度的改變。可以說,調(diào)度功能的好壞直接影響系統(tǒng)的整體服務(wù)能力。不論是TurboCluster中采用高級流量管理器的調(diào)度方式,還是LVS虛擬服務(wù)器中實現(xiàn)的基于NAT、IP-TUNNEL或DIRECT ROUTING技術(shù)的調(diào)度方案,都可抽象為圖3的集中式調(diào)度模型。
客戶請求由單一的調(diào)度接口接收并排隊,根據(jù)調(diào)度算法逐個轉(zhuǎn)發(fā)給實際的服務(wù)器。顯然隨著系統(tǒng)規(guī)模(對于技術(shù)較先進(jìn)的直接路由方式,最大服務(wù)器節(jié)點數(shù)超過100個)的擴(kuò)大和用戶訪問量的增大,調(diào)度接口必將成為系統(tǒng)瓶頸。這使得在有大量客戶請求到達(dá)時,便會因調(diào)度接口主機(jī)的嚴(yán)重超載,而使對客戶請求的響應(yīng)時間可能變得很長,超過客戶容忍程度,甚至?xí)`認(rèn)為系統(tǒng)已不可用。更嚴(yán)重的是,如果這臺特殊主機(jī)崩潰,整個系統(tǒng)即不可用,即使又自動選另一臺或啟動備用機(jī)作為新的調(diào)度接口主機(jī),但瓶頸問題仍然沒有根本解決。
本發(fā)明技術(shù)目的是實現(xiàn)一種分布式并行調(diào)度接口的寬帶網(wǎng)絡(luò)服務(wù)器系統(tǒng),解決現(xiàn)有機(jī)群式寬帶服務(wù)器對客戶請求調(diào)度的瓶頸問題,縮短客戶請求的響應(yīng)時間,增強(qiáng)系統(tǒng)的可用性;極大地提高系統(tǒng)的可擴(kuò)展性和負(fù)載能力,從而提高服務(wù)器系統(tǒng)整體的性價比。為了達(dá)到此目的,本發(fā)明采用的技術(shù)方案是客戶機(jī)與服務(wù)器群協(xié)作,調(diào)度信息拾取和調(diào)度請求處理異步進(jìn)行;服務(wù)器群中每個節(jié)點都能接受、處理和響應(yīng)調(diào)度請求,調(diào)度過程體現(xiàn)為分布式并行??蛻魴C(jī)請求調(diào)度的系統(tǒng)流程框圖如圖4所示,它的調(diào)度模型如圖5所示。
通過實現(xiàn)本發(fā)明分布式并行的輸入輸出調(diào)度接口,可以徹底消除了現(xiàn)有技術(shù)中存在的調(diào)度瓶頸問題。本發(fā)明的工作步驟是本發(fā)明的實施分為異步的兩個過程(如圖4)服務(wù)器信息拾取及維護(hù)過程B和客戶請求調(diào)度過程A。
在尚未發(fā)起客戶請求的時段,運行在各服務(wù)器中的調(diào)度服務(wù)端程序交互各服務(wù)器節(jié)點信息B1,運行在客戶計算機(jī)中的調(diào)度客戶端程序和服務(wù)器中的調(diào)度服務(wù)端程序定時通信,獲得最近時段服務(wù)器群中各活動服務(wù)器節(jié)點及其提供的服務(wù)類型和服務(wù)能力等信息B2,并在本機(jī)中維護(hù)相關(guān)信息表。
當(dāng)客戶訪問服務(wù)器時,客戶計算機(jī)中的客戶應(yīng)用程序發(fā)出的客戶請求通過調(diào)度客戶端程序提供的訪問接口從本機(jī)的信息表中隨機(jī)獲取一個有效(活動且有相關(guān)服務(wù))服務(wù)器的地址A1,并向此服務(wù)器發(fā)起請求A2。由于是隨機(jī)取得的服務(wù)器地址,不同客戶計算機(jī)的請求會隨機(jī)地分布到不同的服務(wù)器節(jié)點,這就解決了所有的請求從同一個調(diào)度接口進(jìn)入服務(wù)器系統(tǒng)的瓶頸問題;然后,接收客戶請求的節(jié)點服務(wù)器根據(jù)當(dāng)前系統(tǒng)狀況和調(diào)度算法返回給客戶一個真實服務(wù)器地址,由于當(dāng)前服務(wù)器也在可選之列,通常被優(yōu)先選中,此時客戶計算機(jī)將直接與其建立通信連接,開始提供客戶要求的應(yīng)用服務(wù),調(diào)度結(jié)束;如果此服務(wù)器負(fù)載已過重(由調(diào)度算法決定),不能對此請求提供服務(wù),則返回給客戶的會是一臺負(fù)載較輕的服務(wù)器的地址,客戶請求不用延遲等待,繼續(xù)向新的服務(wù)器發(fā)送請求,從而能被此服務(wù)器接受并提供服務(wù)。
最壞的情況是,系統(tǒng)整體負(fù)載都很高,此時客戶請求將根據(jù)調(diào)度服務(wù)端程序返回的服務(wù)器地址逐個嘗試連接(每次連接時延約為十多毫秒),只有當(dāng)所有服務(wù)器都不能服務(wù)時才會放棄請求,不會出現(xiàn)前述集群系統(tǒng)中那種雖然服務(wù)器仍有服務(wù)能力,但因請求報文在調(diào)度接口阻塞,而使請求被拒絕的情況,提高了系統(tǒng)的可用性。
附圖及


圖1是turbocluster服務(wù)器結(jié)構(gòu)2是Linux虛擬服務(wù)器結(jié)構(gòu)3是集中式調(diào)度模型4是系統(tǒng)流程框5是分布式并行調(diào)度模型6是VOD服務(wù)系統(tǒng)結(jié)構(gòu)圖其中,c1,c2,c3...訪問本服務(wù)器的客戶機(jī),為通用個人計算機(jī)PC,通過100Mbps以太網(wǎng)絡(luò)適配器連入Internet;安裝運行windows2000操作系統(tǒng)、VOD客戶應(yīng)用軟件和本發(fā)明的客戶端軟件模塊。
局域網(wǎng)連接服務(wù)器群內(nèi)部各節(jié)點的物理網(wǎng)絡(luò)通路;采用100Mbps以太網(wǎng)高速互聯(lián)設(shè)備;Internet連接客戶計算機(jī)和服務(wù)器的網(wǎng)絡(luò)通路;s1,s2,s3,s4...通用高性能PC機(jī)(帶100Mbps以太網(wǎng)絡(luò)適配器),作為服務(wù)器提供VOD服務(wù);安裝運行l(wèi)inux操作系統(tǒng);安裝運行本發(fā)明的服務(wù)端軟件模塊和VOD服務(wù)應(yīng)用軟件。
圖7是應(yīng)用于VOD服務(wù)器的調(diào)度軟件結(jié)構(gòu)圖其中,調(diào)度服務(wù)端程序和調(diào)度客戶端程序都采用C++語言編寫。
圖8是節(jié)點管理模塊程序流程9是應(yīng)用服務(wù)器接口模塊結(jié)構(gòu)11是調(diào)度子模塊結(jié)構(gòu)圖視頻點播系統(tǒng)通過高速上網(wǎng)技術(shù)連上各種寬帶多媒體網(wǎng)站進(jìn)行網(wǎng)上電影、電視、網(wǎng)絡(luò)音樂、遠(yuǎn)程教育、會議、醫(yī)療等各種交互式活動。實施分兩個階段第一階段客戶機(jī)獲得服務(wù)器群最新信息,對應(yīng)圖4的B過程。步驟1啟動調(diào)度服務(wù)端程序要求服務(wù)器系統(tǒng)中每臺主機(jī)(s1,s2,s3,s4)都運行調(diào)度服務(wù)端程序。調(diào)度服務(wù)端程序為多線程形式的守護(hù)進(jìn)程,如圖7,此程序包括節(jié)點管理、任務(wù)調(diào)度,應(yīng)用服務(wù)接口和負(fù)荷拾取與維護(hù)等子模塊。調(diào)度服務(wù)端程序維護(hù)有四張表服務(wù)名字-端口號映射表——表中的每一項是一個服務(wù)名字-端口號的映射,用于描述應(yīng)用服務(wù)的訪問入口。
主機(jī)更新索引表——用于更新節(jié)點主機(jī)信息時確定發(fā)送信息報文到哪臺節(jié)點主機(jī)。
主機(jī)負(fù)載表——記錄了系統(tǒng)中所有活動主機(jī)的負(fù)載情況。
服務(wù)-主機(jī)映射表——記錄各臺服務(wù)主機(jī)所提供的各項服務(wù)的信息。
啟動調(diào)度服務(wù)端程序?qū)⑹紫纫l(fā)節(jié)點管理子模塊運行。其流程如圖8,描述如下1、進(jìn)行網(wǎng)絡(luò)初始化工作創(chuàng)建TCP通信套接字、UDP通信套接字并綁定到指定的端口,創(chuàng)建UNIX通信套接字。
2、將程序初始化為一個守護(hù)程序,1、2步的實現(xiàn)均為中等程序員所熟悉,在此不詳述。
3、在服務(wù)器群內(nèi)廣播本節(jié)點信息,以此向其他活動主機(jī)節(jié)點聲明本機(jī)加入系統(tǒng)。
4、產(chǎn)生一個線程,定時查看并處理主機(jī)更新索引表中各主機(jī)信息主機(jī)更新索引表是以接收到此條記錄的時標(biāo)RecvTime的升序進(jìn)行排序的,處理從頭到尾進(jìn)行。如果第一個元素的RecvTime與當(dāng)前時間的差值小于一個更新周期UPD_HOST_TIME(根據(jù)系統(tǒng)規(guī)模用宏的方式定義),則不作任何操作,等待下一次更新,因為主機(jī)更新索引表中的所有主機(jī)都在一個更新周期內(nèi)發(fā)送了報文到本機(jī)。刪除主機(jī)更新索引表中的死亡主機(jī),RecvTime與當(dāng)前時間的差值大于三個更新周期的元素都認(rèn)為是死亡的主機(jī)。在刪除死亡主機(jī)后,需刪除主機(jī)負(fù)載表、服務(wù)-主機(jī)映射表中的相應(yīng)主機(jī)記錄。另外,如果有某些服務(wù)是這些死亡主機(jī)所獨有的,還要在服務(wù)名字-端口號映射表中刪除相應(yīng)的服務(wù)信息。這時,主機(jī)更新索引表的最前面將有一些元素的RecvTime與當(dāng)前時間的差值是在一個更新周期與三個更新周期之間,這些主機(jī)就需要進(jìn)行更新——通過UDP通信套接字向它們發(fā)送本主機(jī)信息報文。但是對這些主機(jī)并不是全部更新,而是從中選擇一部分進(jìn)行更新,更新的最大數(shù)目是所有活動主機(jī)數(shù)目的1/3,這個數(shù)目的設(shè)計是考慮要在三個更新周期內(nèi)更新完成所有的活動主機(jī)。
5、產(chǎn)生一個線程,定時檢查本地服務(wù)名字-端口號映射表中的服務(wù)是否死亡。因為本地服務(wù)名字-端口號映射表中的每個元素都有一個提供服務(wù)的服務(wù)器進(jìn)程號屬性,就通過檢查這個進(jìn)程號對應(yīng)的進(jìn)程的狀態(tài)是否活動來檢查服務(wù)是否死亡。此線程同時啟動一定時器,通過系統(tǒng)調(diào)用接口提取本機(jī)負(fù)載信息,更新主機(jī)-負(fù)載表中本機(jī)負(fù)載的項。
6、采用I/O多路復(fù)用select()來同時監(jiān)聽一個TCP通信端口(與客戶機(jī)通信)、一個UDP通信端口(服務(wù)器節(jié)點機(jī)之間相互通信)和一個UNIX域套接字端口(與應(yīng)用服務(wù)進(jìn)程通信)。
7、主線程進(jìn)入監(jiān)聽循環(huán),等待接收各端口消息并分別產(chǎn)生各消息處理線程。消息處理描述TCP消息由調(diào)度客戶端程序發(fā)起,主要是客戶更新服務(wù)主機(jī)信息和名字服務(wù)映射。當(dāng)調(diào)度服務(wù)端程序監(jiān)聽到一個TCP消息則生成一個線程處理,處理流程如下1.從TCP套接字讀出消息;2.判斷消息中的版本號,如果版本號和系統(tǒng)信息當(dāng)前版本一致,則發(fā)送一個空數(shù)據(jù)報文,否則,發(fā)送新版本的服務(wù)主機(jī)信息和服務(wù)映射信息(從各表中獲取);3.關(guān)閉套接字,結(jié)束線程。UDP消息是服務(wù)節(jié)點機(jī)之間的通信,用于交互節(jié)點主機(jī)信息(負(fù)載,服務(wù))。
當(dāng)?shù)竭_(dá)一個消息則生成一個線程,處理流程如下1.套接字中讀出數(shù)據(jù)報,并驗證其合法性;2.據(jù)消息的類型,作不同的處理;2.1節(jié)點機(jī)更新請求類型消息①根據(jù)信源主機(jī)的地址,在更新索引表中查找該主機(jī)的更新信息。如果當(dāng)前時間與該主機(jī)更新信息的發(fā)送時標(biāo)send_time的間隔<定時器時間T,則說明已經(jīng)發(fā)送了消息給信源主機(jī)(相當(dāng)于應(yīng)答),更新信源主機(jī)的接收時標(biāo)recv_time,并按照主機(jī)的recv_time遞減的方向進(jìn)行排序。轉(zhuǎn)②。如果時間間隔>T,則通過本節(jié)點機(jī)中維護(hù)的各表組織應(yīng)答的信息,發(fā)送給信源主機(jī),同時更新send_time和recv_time,并按照主機(jī)的recv_time遞減的方向進(jìn)行排序。轉(zhuǎn)②。如果沒有找到該主機(jī)信息,說明接收到一個新啟動的服務(wù)器節(jié)點發(fā)送的廣播消息,也應(yīng)該組織本地主機(jī)的消息,發(fā)送給信源主機(jī),進(jìn)行應(yīng)答。然后在本機(jī)的更新索引表中增加該信源主機(jī)的send_time和recv_time,并按照主機(jī)的recv_time遞減的方向進(jìn)行排序。
②根據(jù)消息,更新服務(wù)-主機(jī)映射表、服務(wù)名字-端口號映射表;③從消息中取得負(fù)載信息,更新主機(jī)-負(fù)載表;④關(guān)閉套接字,結(jié)束線程。
2.2節(jié)點機(jī)更新應(yīng)答類型消息①根據(jù)信源主機(jī)的地址,在更新索引表中查找該主機(jī)的更新信息。更新信源主機(jī)的recv_time,并按照主機(jī)的recv_time遞減的方向進(jìn)行排序。
②根據(jù),更新服務(wù)名字-端口號映射表、服務(wù)-主機(jī)映射表;③從消息的負(fù)載項取得負(fù)載信息,更新主機(jī)-負(fù)載表;④關(guān)閉套接字,結(jié)束線程。UNIX域消息與VOD應(yīng)用服務(wù)器進(jìn)行通信,主要是應(yīng)用服務(wù)器向本調(diào)度程序注冊/注銷相關(guān)服務(wù),以獲得在整個服務(wù)群內(nèi)的調(diào)度支持,并通過此消息發(fā)起調(diào)度請求。當(dāng)?shù)竭_(dá)一個消息則生成一個線程,處理流程如下1.從套接字中讀出消息,并驗證其合法性;
2.根據(jù)消息的類型,作不同的處理;①請求注冊類型消息在服務(wù)名字-端口號映射表中增加服務(wù)項,修改服務(wù)-服務(wù)器映射表。
②請求注銷類型消息在服務(wù)名字-端口號映射表中刪除服務(wù)項,修改服務(wù)-服務(wù)器映射表。
③請求調(diào)度類型消息調(diào)用調(diào)度子模塊,并將返回服務(wù)器IP地址通過UNIX域套接字返回給應(yīng)用服務(wù)器。
3.關(guān)閉套接字,結(jié)束線程。步驟2啟動VOD服務(wù)器模塊程序為了使用本發(fā)明軟件的功能,VOD服務(wù)器程序作為寬帶服務(wù)的一種,在啟動時需調(diào)用本軟件提供的接口函數(shù)(以頭文件形式提供),通過前述的UNIX域消息向本軟件調(diào)度服務(wù)端程序注冊其應(yīng)用服務(wù)——服務(wù)名及訪問端口。步驟3客戶機(jī)(c1,c2,c3)運行調(diào)度客戶端程序調(diào)度客戶端程序分為后臺執(zhí)行程序UPD.EXE和動態(tài)鏈接庫SchedClientPro.DLL。,UPD.EXE要求在客戶應(yīng)用程序如VOD客戶程序運行之前運行,一般安排在客戶開啟客戶程序前通過操作系統(tǒng)啟動運行或由VOD客戶程序編制人員調(diào)用動態(tài)鏈接庫提供的接口函數(shù)啟動。此程序安裝時,會在本機(jī)系統(tǒng)目錄中生成一個可用服務(wù)器節(jié)點的IP地址的列表文件,其中的地址由安裝過程很容易保證是可用的。
程序UPD.EXE在本機(jī)系統(tǒng)目錄中的以文件形式維護(hù)有效服務(wù)器地址表、服務(wù)名字-端口映射列表、服務(wù)-服務(wù)器映射列表,其執(zhí)行流程如圖10。首先從有效服務(wù)器地址列表中隨機(jī)獲取一服務(wù)器地址,接著檢查服務(wù)器信息版本號,此版本號保存在系統(tǒng)目錄中的另一文件中,用于保證信息與服務(wù)器群的最新信息同步。如果沒有找此文件(在初始安裝時),則生成它,并置初始版本號為0;向獲得的服務(wù)器的系統(tǒng)調(diào)度端口發(fā)起TCP連接,如果連接失敗,則嘗試另外的地址,直至所有地址都不可用才失敗返回;如前述,通過此連接,調(diào)度服務(wù)端程序組織服務(wù)器群的各項最新信息返回給本機(jī),并在本地修改各表,成功返回。此后,調(diào)度客戶端程序會定時重復(fù)以上操作,保證客戶應(yīng)用程序發(fā)起請求時,總能獲得最新的有效的服務(wù)器地址。步驟4啟動VOD客戶端程序按照windows操作系統(tǒng)的應(yīng)用軟件通常的方式啟動,本實施例無特殊要求。第二階段服務(wù)器調(diào)度客戶請求,對應(yīng)圖4的A過程。步驟5VOD客戶程序調(diào)用本軟件提供的動態(tài)鏈接庫方式的接口函數(shù),從調(diào)度客戶程序隨機(jī)獲得一個或多個有效服務(wù)器地址。步驟6VOD客戶程序按照VOD服務(wù)自己的相關(guān)應(yīng)用協(xié)議向該服務(wù)器節(jié)點機(jī)上的VOD服務(wù)程序的應(yīng)用調(diào)度端口發(fā)起TCP連接請求,連接成功則發(fā)送應(yīng)用調(diào)度請求報文,在極少情況連接不成功時,則認(rèn)為此服務(wù)器地址無效,選取另一服務(wù)器地址發(fā)起連接請求。VOD服務(wù)程序接受請求連接后,再通過UNIX套節(jié)字向前述的節(jié)點管理子模塊發(fā)送請求調(diào)度類型消息。步驟7如圖8,節(jié)點管理子模塊收到一個UNIX消息,將產(chǎn)生一個子線程,由它調(diào)用任務(wù)調(diào)度子模塊接口函數(shù),并要求返回一個調(diào)度結(jié)果——提供應(yīng)用服務(wù)的服務(wù)器節(jié)點IP地址。然后通過原UNIX套接字返回給VOD服務(wù)程序。如圖11,任務(wù)調(diào)度子模塊實現(xiàn)為多個可擴(kuò)展的調(diào)度算法,如輪轉(zhuǎn)服務(wù)法、加權(quán)輪轉(zhuǎn)服務(wù)法、最少連接先服務(wù)法、本地優(yōu)先法、有副本優(yōu)先服務(wù)法等調(diào)度算法,不同算法的具體實現(xiàn)非本發(fā)明所限定,不在此贅述。根據(jù)應(yīng)用類型不同調(diào)用函數(shù)可輸入不同參數(shù),使不同應(yīng)用服務(wù)器可選取最合適的調(diào)度算法,如HTTP服務(wù)器可采用最少連接先服務(wù)法,F(xiàn)TP服務(wù)器可采用最小帶寬使用量優(yōu)先法。本實施例采取最少連接數(shù)加本機(jī)優(yōu)先服務(wù)算法。步驟8VOD服務(wù)程序通過TCP通信連接返回此調(diào)度結(jié)果給VOD客戶程序;VOD客戶程序立即開始與此服務(wù)器的數(shù)據(jù)傳輸端口建立應(yīng)用數(shù)據(jù)傳輸連接,連接成功則可結(jié)束調(diào)度(實際情況往往如此)。極少情況下連接失敗,則認(rèn)為此地址的服務(wù)無效回到步驟5重復(fù)執(zhí)行。
從以上步驟可以看出客戶請求隨機(jī)發(fā)往服務(wù)器群中的任意有效服務(wù)器,能同時接收請求的服務(wù)器數(shù)將和活動服務(wù)器的總數(shù)相同,請求信息的帶寬是現(xiàn)有系統(tǒng)的N倍(N為服務(wù)器節(jié)點數(shù)),而且接收到請求的服務(wù)器能根據(jù)調(diào)度算法重定位客戶請求,進(jìn)一步防止了對請求的處理被阻塞在一臺服務(wù)器的請求隊列中,實現(xiàn)了動態(tài)負(fù)載平衡的功能。由此,我們可以得出結(jié)論本發(fā)明徹底解決了VOD客戶和VOD服務(wù)器系統(tǒng)之間調(diào)度瓶頸的問題,實施本發(fā)明能在現(xiàn)有硬件系統(tǒng)規(guī)?;A(chǔ)上支持更多的點播用戶,極大地提高系統(tǒng)的可擴(kuò)展性和對用戶的負(fù)載能力,從而提高服務(wù)器系統(tǒng)整體的性價比。本發(fā)明實施例技術(shù)效果比較目前現(xiàn)有的一個寬帶業(yè)務(wù)VOD系統(tǒng)滿足6000用戶的VOD點播,同時支持300個用戶的正常并發(fā)點播,流連接的時間不超過20秒。其媒體服務(wù)器采用Sun 6000E系統(tǒng),可存儲300G以上的視頻節(jié)目,但系統(tǒng)造價在200萬人民幣以上。
而本發(fā)明實施例系統(tǒng)可以同時使用的用戶數(shù)100-10000戶,服務(wù)器響應(yīng)時間小于2秒鐘,采用本發(fā)明方案的達(dá)到與上面系統(tǒng)相同或更好性能指標(biāo)的系統(tǒng)只需不到50萬人民幣。
權(quán)利要求
1.一種分布式并行調(diào)度網(wǎng)絡(luò)服務(wù)器系統(tǒng),包括服務(wù)器和客戶計算機(jī),其特征是它執(zhí)行下面步驟工作它采用異步的兩個過程服務(wù)器信息拾取及維護(hù)過程B和客戶請求調(diào)度過程A。從尚未發(fā)起客戶請求的時段起,運行在各服務(wù)器中的調(diào)度服務(wù)端程序就交互各服務(wù)器節(jié)點信息B1,運行在客戶計算機(jī)中的調(diào)度客戶端程序和服務(wù)器中的調(diào)度服務(wù)端程序定時通信,獲得最近時段服務(wù)器群中各活動服務(wù)器節(jié)點及其提供的服務(wù)類型和服務(wù)能力等信息B2,并在本機(jī)中維護(hù)相關(guān)信息表;當(dāng)客戶訪問服務(wù)器時,客戶計算機(jī)中的應(yīng)用客戶請求通過調(diào)度客戶端程序提供的訪問接口隨機(jī)獲取一個或一組有效(活動且有相關(guān)服務(wù))服務(wù)器的地址A1,并取一個向其發(fā)起請求A2;然后,接收客戶請求的服務(wù)器根據(jù)當(dāng)前服務(wù)器系統(tǒng)狀況經(jīng)調(diào)度算法返回給客戶一個真實服務(wù)器地址,此時客戶計算機(jī)將直接與其建立應(yīng)用通信連接,開始提供客戶要求的應(yīng)用服務(wù),調(diào)度結(jié)束;如果此服務(wù)器負(fù)載已過重,不能對此服務(wù)器請求提供服務(wù),客戶請求不用延遲等待,繼續(xù)向新的服務(wù)器發(fā)送請求,從而能被新的服務(wù)器接受并提供服務(wù)。
2.根據(jù)權(quán)利要求1所述的一種分布式并行調(diào)度網(wǎng)絡(luò)服務(wù)器系統(tǒng),其特征是所述的分布式并行調(diào)度網(wǎng)絡(luò)服務(wù)器是VOD視頻點播系統(tǒng),它采用的工作步驟是分為兩個階段第一階段客戶機(jī)獲得服務(wù)器群最新信息步驟1啟動調(diào)度服務(wù)端程序服務(wù)器系統(tǒng)中每臺主機(jī)都運行調(diào)度服務(wù)端程序,調(diào)度服務(wù)端程序為多線程形式的守護(hù)進(jìn)程,此程序包括節(jié)點管理、任務(wù)調(diào)度和負(fù)荷拾取及維護(hù)等子模塊,啟動調(diào)度服務(wù)端程序?qū)⑹紫纫l(fā)節(jié)點管理子模塊運行,其流程是1、進(jìn)行網(wǎng)絡(luò)初始化工作創(chuàng)建TCP套接字、UDP套接字和UNIX套接字,并綁定到指定的端口;2、將程序初始化為一個守護(hù)程序;3、在服務(wù)器內(nèi)廣播本節(jié)點信息,向其他活動主機(jī)節(jié)點聲明本機(jī)加入系統(tǒng);4、產(chǎn)生一個線程,定時查看并處理主機(jī)更新主機(jī)信息;5、產(chǎn)生一個線程,定時檢查本地服務(wù)名字-端口號映射表中的服務(wù)是否死亡;子線程啟動定時器,通過接口提取負(fù)載信息;6、采用I/0多路復(fù)用select()來同時監(jiān)聽一個TCP通信端口(與客戶通信)、一個UDP通信端口(節(jié)點機(jī)之間相互通信)和一個UNIX域套接字端口(與應(yīng)用服務(wù)器通信);7、主線程進(jìn)入循環(huán),接收各端口消息并處理消息;步驟2啟動VOD服務(wù)器模塊程序步驟3客戶機(jī)運行調(diào)度客戶端程序程序執(zhí)行流程是首先從地址列表文件中隨機(jī)獲取一服務(wù)器地址,接著檢查服務(wù)器信息版本號,此版本號保存在系統(tǒng)目錄中的另一文件serverVer中,用于保證信息的最新性。如果沒有找到此文件(在初始安裝時),則生成它,并置版本號為0;向發(fā)起TCP連接,如果連接失敗,則嘗試另外的地址,直至所有地址都不可用才失敗返回;通過連接,獲取服務(wù)器群的各項信息,并在本地生成最新的服務(wù)器IP地址列表、服務(wù)一服務(wù)器映射表和服務(wù)名字一服務(wù)端口映射表,成功返回;此后,調(diào)度客戶端程序會定時重復(fù)以上操作,保證客戶應(yīng)用程序發(fā)起請求時,總能獲得有效的服務(wù)器地址;步驟4啟動VOD客戶端程序第二階段服務(wù)器調(diào)度客戶請求步驟5VOD客戶程序調(diào)用本軟件提供的動態(tài)鏈接庫方式的接口,從調(diào)度客戶程序隨機(jī)獲得一有效服務(wù)器地址;步驟6VOD客戶程序按照VOD服務(wù)自己的相關(guān)協(xié)議向該服務(wù)器上的VOD服務(wù)程序的應(yīng)用調(diào)度端口發(fā)起TCP連接請求,連接成功則發(fā)送應(yīng)用調(diào)度請求信息,在極少情況連接不成功時,則認(rèn)為此服務(wù)器地址無效,回到步驟5,選取另一服務(wù)器地址發(fā)起連接請求;VOD服務(wù)程序接受請求連接后,再向前述的節(jié)點管理子模塊UNIX套節(jié)字發(fā)送請求調(diào)度類消息;步驟7節(jié)點管理子模塊收到一個UNIX消息,將產(chǎn)生一個子線程,由它調(diào)用任務(wù)調(diào)度子模塊接口函數(shù),并要求返回一個調(diào)度結(jié)果——服務(wù)器地址;然后通過原UNIX套接字返回給VOD服務(wù)程序;任務(wù)調(diào)度子模塊實現(xiàn)為多個可擴(kuò)展的調(diào)度算法,如輪轉(zhuǎn)服務(wù)法、加權(quán)輪轉(zhuǎn)服務(wù)法、最少連接先服務(wù)法、本地優(yōu)先法、有副本優(yōu)先服務(wù)法等調(diào)度算法;步驟8VOD服務(wù)程序通過TCP通信連接返回此調(diào)度結(jié)果給VOD客戶程序;VOD客戶程序立即開始與此服務(wù)器建立應(yīng)用數(shù)據(jù)傳輸連接,連接成功則可結(jié)束調(diào)度。
全文摘要
本發(fā)明公開了一種分布式并行調(diào)度網(wǎng)絡(luò)服務(wù)器系統(tǒng),客戶端與服務(wù)器端協(xié)作,調(diào)度信息拾取和調(diào)度請求處理異步進(jìn)行;服務(wù)器群中每個節(jié)點都能接受和處理調(diào)度請求,調(diào)度過程體現(xiàn)為分布式并行。通過實現(xiàn)此分布式并行的輸入輸出調(diào)度接口,徹底消除了現(xiàn)有技術(shù)中存在的調(diào)度瓶頸問題。實施本發(fā)明能在現(xiàn)有硬件系統(tǒng)規(guī)?;A(chǔ)上支持更多的點播用戶,極大地提高系統(tǒng)的可擴(kuò)展性和對用戶的負(fù)載能力,從而提高服務(wù)器系統(tǒng)整體的性價比。
文檔編號H04L29/00GK1455347SQ0211368
公開日2003年11月12日 申請日期2002年4月30日 優(yōu)先權(quán)日2002年4月30日
發(fā)明者劉心松, 劉丹, 唐續(xù), 劉流, 羅朝勁 申請人:電子科技大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1