專利名稱:支持大并發(fā)量文件下載的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)通信領(lǐng)域,尤其涉及在網(wǎng)絡(luò)中支持大并發(fā)量文件下載的方法、 裝置及系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,通過網(wǎng)絡(luò)共享的各種文件越來越多,提供應(yīng)用的服務(wù)器中存儲(chǔ)了大量的應(yīng)用文件以供用戶進(jìn)行下載。常見的網(wǎng)絡(luò)文件傳輸方式主要為C/ S(client/server,客戶端/服務(wù)器)模式,當(dāng)出現(xiàn)熱門文件或是提供升級(jí)服務(wù)的系統(tǒng)在發(fā)布新的升級(jí)文件時(shí),用戶終端會(huì)集中在短時(shí)間內(nèi)下載升級(jí)文件,造成服務(wù)器的并發(fā)下載壓力。為緩解服務(wù)器的大并發(fā)量下載壓力,常使用增加新的服務(wù)器的方式來滿足下載需求,減輕大并發(fā)量下載壓力?,F(xiàn)有技術(shù)還提供一種通過緩存方式提高下載速度以減輕大并發(fā)量下載壓力的方案,通過緩存技術(shù),將文件存入服務(wù)器的緩存,當(dāng)大量用戶下載文件時(shí),直接訪問服務(wù)器的緩存,而不必頻繁對(duì)文件服務(wù)器硬盤進(jìn)行讀取訪問,以提高下載的速度。在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題使用增加新的服務(wù)器的方式來緩解大并發(fā)量下載壓力,當(dāng)服務(wù)器數(shù)量較多時(shí),對(duì)于提供下載服務(wù)的多臺(tái)服務(wù)器缺乏有效的綜合管理和負(fù)載分配機(jī)制,因而不能滿足并發(fā)下載量持續(xù)增加的要求。在使用緩存技術(shù)的方案中,當(dāng)服務(wù)器中有大量文件的緩存時(shí),由于缺乏對(duì)被緩存文件的管理調(diào)節(jié),在并發(fā)下載量繼續(xù)增加時(shí)仍會(huì)出現(xiàn)并發(fā)下載壓力。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種支持大并發(fā)量文件下載的方法、裝置、系統(tǒng),能進(jìn)一步降低大并發(fā)量下載對(duì)服務(wù)器造成的下載壓力。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一種支持大并發(fā)量文件下載的方法,包括下載控制服務(wù)器接收客戶端的下載服務(wù)器查詢請(qǐng)求消息;根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和下載服務(wù)器的負(fù)載情況,獲取一個(gè)下載服務(wù)器;將所述獲取的一個(gè)下載服務(wù)器的地址發(fā)送給所述客戶端,指示客戶端從所述地址對(duì)應(yīng)的下載服務(wù)器中下載文件。一種支持大并發(fā)量文件下載的裝置,包括服務(wù)器請(qǐng)求接收單元,用于接收客戶端的下載服務(wù)器查詢請(qǐng)求消息;服務(wù)器獲取單元,用于根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和下載服務(wù)器的負(fù)載情況,獲取一個(gè)下載服務(wù)器;服務(wù)器請(qǐng)求返回單元,用于將所述獲取的一個(gè)下載服務(wù)器的地址發(fā)送給所述客戶端,指示客戶端從所述地址對(duì)應(yīng)的下載服務(wù)器中下載文件。
一種支持大并發(fā)量文件下載的系統(tǒng),包括客戶端,用于向下載控制服務(wù)器發(fā)送下載服務(wù)器查詢請(qǐng)求消息,所述下載服務(wù)器查詢請(qǐng)求消息中攜帶需下載文件的標(biāo)識(shí); 下載控制服務(wù)器,用于接收客戶端的下載服務(wù)器查詢請(qǐng)求消息;根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和下載服務(wù)器的負(fù)載情況,獲取一個(gè)下載服務(wù)器; 將所述獲取的一個(gè)下載服務(wù)器的地址發(fā)送給所述客戶端,指示客戶端從所述地址對(duì)應(yīng)的下載服務(wù)器中下載文件;所述客戶端還用于在接收到下載控制服務(wù)器返回的下載服務(wù)器地址后,向所述返回的下載服務(wù)器地址發(fā)起文件下載請(qǐng)求消息。本發(fā)明實(shí)施例提供的支持大并發(fā)量文件下載的方法、裝置、系統(tǒng),下載控制服務(wù)器通過由分析緩存文件及判斷下載服務(wù)器的負(fù)載情況組成的負(fù)載均衡原則,選出下載壓力最小的一臺(tái)下載服務(wù)器提供文件下載服務(wù)。當(dāng)出現(xiàn)大并發(fā)量下載的情況時(shí),下載控制服務(wù)器依照所述負(fù)載均衡原則對(duì)各下載服務(wù)器進(jìn)行任務(wù)分擔(dān),實(shí)現(xiàn)了對(duì)大并發(fā)量文件下載任務(wù)的優(yōu)化分配,從而減輕了大并發(fā)量文件下載對(duì)服務(wù)器造成的下載壓力。
圖1為本發(fā)明實(shí)施例1中支持大并發(fā)量文件下載的方法的流程圖;圖2為本發(fā)明實(shí)施例1中支持大并發(fā)量文件下載的裝置的框圖;圖3為本發(fā)明實(shí)施例1中支持大并發(fā)量文件下載的系統(tǒng)的框圖;圖4為本發(fā)明實(shí)施例2中支持大并發(fā)量文件下載的方法的流程圖;圖5為本發(fā)明實(shí)施例2中支持大并發(fā)量文件下載的方法的流程圖;圖6為本發(fā)明實(shí)施例2中支持大并發(fā)量文件下載的方法的流程圖;圖7為本發(fā)明實(shí)施例2中支持大并發(fā)量文件下載的方法的流程圖;圖8為本發(fā)明實(shí)施例3中支持大并發(fā)量文件下載的裝置的框圖;圖9為本發(fā)明實(shí)施例3中支持大并發(fā)量文件下載的裝置的框圖;圖10為本發(fā)明實(shí)施例3中支持大并發(fā)量文件下載的裝置的框圖;圖11為本發(fā)明實(shí)施例3中支持大并發(fā)量文件下載的裝置的框圖;圖12為本發(fā)明實(shí)施例3中支持大并發(fā)量文件下載的裝置的框圖;圖13為本發(fā)明實(shí)施例4中支持大并發(fā)量文件下載的系統(tǒng)的框圖。
具體實(shí)施例方式下面結(jié)合本發(fā)明實(shí)施例的附圖對(duì)本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)例1 本發(fā)明實(shí)施例公開了一種支持大并發(fā)量文件下載的方法,如圖1所示,包括以下步驟101、下載控制服務(wù)器接收客戶端的下載服務(wù)器查詢請(qǐng)求消息,所述下載服務(wù)器查詢請(qǐng)求消息中攜帶了所述客戶端需下載的文件的標(biāo)識(shí)。102、下載控制服務(wù)器根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和下載服務(wù)器的負(fù)載情況,獲取一個(gè)下載服務(wù)器。103、將所述獲取的一個(gè)下載服務(wù)器的地址發(fā)送給所述客戶端,指示客戶端從所述地址對(duì)應(yīng)的下載服務(wù)器中下載文件。本發(fā)明實(shí)施例還公開了一種支持大并發(fā)量文件下載的裝置,如圖2。所述支持大并發(fā)量文件下載的裝置包括服務(wù)器請(qǐng)求接收單元21,服務(wù)器獲取單元22,服務(wù)器請(qǐng)求返回單元23??蛻舳讼蛳螺d控制服務(wù)器發(fā)出服務(wù)器查詢請(qǐng)求后,服務(wù)器請(qǐng)求接收單元21接收所述客戶端的下載服務(wù)器查詢請(qǐng)求消息;服務(wù)器獲取單元22根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和下載服務(wù)器的負(fù)載情況,獲取一個(gè)下載服務(wù)器;然后,服務(wù)器請(qǐng)求返回單元23將所述獲取的一個(gè)下載服務(wù)器的地址發(fā)送給所述客戶端,指示客戶端從所述地址對(duì)應(yīng)的下載服務(wù)器中下載文件。本發(fā)明實(shí)施例還公開了一種支持大并發(fā)量文件下載的系統(tǒng),如圖3所示,包括客戶端31、下載控制服務(wù)器32。所述客戶端一般在兩個(gè)或兩個(gè)以上,本實(shí)施例以客戶端31為例進(jìn)行說明??蛻舳?1向下載控制服務(wù)器32發(fā)送下載服務(wù)器查詢請(qǐng)求消息,所述下載服務(wù)器查詢請(qǐng)求消息中攜帶需下載文件的標(biāo)識(shí)。下載控制服務(wù)器32接收客戶端31的下載服務(wù)器查詢請(qǐng)求消息后,根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和各下載服務(wù)器的負(fù)載情況,獲取一個(gè)下載服務(wù)器,將所述獲取的一個(gè)下載服務(wù)器的地址發(fā)送給客戶端31,指示客戶端31從所述地址對(duì)應(yīng)的下載服務(wù)器中下載文件??蛻舳?1在接收到下載控制服務(wù)器32返回的下載服務(wù)器地址后,向所述返回的下載服務(wù)器地址發(fā)起文件下載請(qǐng)求消息。本實(shí)施例提供的一種支持大并發(fā)量文件下載的方法、裝置及系統(tǒng),當(dāng)出現(xiàn)大并發(fā)量下載的情況時(shí),通過對(duì)緩存文件分布和下載服務(wù)器的負(fù)載情況的分析,從所有下載服務(wù)器中獲取一個(gè)下載壓力最小的下載服務(wù)器向客戶端提供文件下載服務(wù)。實(shí)現(xiàn)了負(fù)載的均衡分配,減輕了大并發(fā)量文件下載對(duì)服務(wù)器造成的下載壓力。實(shí)例2 本發(fā)明實(shí)施例公開了一種支持大并發(fā)量文件下載的方法,如圖4所示,包括以下步驟401、客戶端發(fā)起下載請(qǐng)求后,下載控制服務(wù)器接收客戶端的下載服務(wù)器查詢請(qǐng)求消息,所述下載服務(wù)器查詢請(qǐng)求消息中攜帶了所述客戶端需下載的文件的標(biāo)識(shí)。402、根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息中的文件的標(biāo)識(shí),查詢文件服務(wù)器中是否存在所述請(qǐng)求文件,若不存在所述請(qǐng)求文件,轉(zhuǎn)向步驟403 ;若存在所述請(qǐng)求文件,則轉(zhuǎn)向步驟404。403、下載控制服務(wù)器通知客戶端不存在所述請(qǐng)求文件,結(jié)束客戶端本次下載請(qǐng)求。404、記錄所述請(qǐng)求文件的大小。405、查詢所述請(qǐng)求文件是否已在下載服務(wù)器的緩存中,如果所述請(qǐng)求文件已在下載服務(wù)器的緩存中,轉(zhuǎn)向步驟406 ;如果所述請(qǐng)求文件不在任何下載服務(wù)器的緩存中,轉(zhuǎn)向步驟408。406、在緩存有請(qǐng)求文件的下載服務(wù)器中選取一個(gè)最優(yōu)下載服務(wù)器,所述最優(yōu)下載服務(wù)器的客戶端連接數(shù)小于既定最大連接數(shù)且客戶端連接數(shù)最少,如果存在所述最優(yōu)下載服務(wù)器,則轉(zhuǎn)向步驟408 ;如果不存在所述最優(yōu)下載服務(wù)器,轉(zhuǎn)向步驟407。407、在所述請(qǐng)求文件不在任何下載服務(wù)器的緩存中、或是不存在所述最優(yōu)下載服務(wù)器的情況下,下載控制服務(wù)器從所管轄的所有下載服務(wù)器中,選取一個(gè)處于在線狀態(tài)的下載服務(wù)器。408、將所述最優(yōu)下載服務(wù)器的地址、或所述選出的處于在線狀態(tài)的下載服務(wù)器的地址返回給客戶端,結(jié)束本次過程。在步驟407中,所述選取一個(gè)處于在線狀態(tài)的下載服務(wù)器的選擇過程如圖5所示, 包括以下步驟501、從下載控制服務(wù)器的下載服務(wù)器列表中選擇處于在線狀態(tài)并且客戶端連接數(shù)小于既定最大連接數(shù)的下載服務(wù)器的集合,如果不存在所述下載服務(wù)器的集合,轉(zhuǎn)向步驟502 ;如果存在所述下載服務(wù)器的集合,轉(zhuǎn)向步驟503。502、下載控制服務(wù)器通知客戶端不存在可用的下載服務(wù)器,結(jié)束客戶端本次下載請(qǐng)求。503、在所述下載服務(wù)器的集合中,選擇可用內(nèi)存容量大于請(qǐng)求文件大小的一組下載服務(wù)器,如果選擇出可周內(nèi)存容量大于請(qǐng)求文件大小的下載服務(wù)器個(gè)數(shù)大于0,轉(zhuǎn)向步驟 504;如果選擇出可用內(nèi)存容量大于請(qǐng)求文件大小的下載服務(wù)器個(gè)數(shù)等于0,轉(zhuǎn)向步驟506。504、在所述選擇出的可用內(nèi)存容量大于請(qǐng)求文件大小的一組下載服務(wù)器中,選擇出連接數(shù)最少的一個(gè)下載服務(wù)器。505、將步驟504中選出的下載服務(wù)器的下載方式設(shè)置為緩存下載,并將步驟504 中選出的下載服務(wù)器對(duì)應(yīng)的請(qǐng)求文件的標(biāo)識(shí)和文件大小以及步驟504中選出的下載服務(wù)器的地址發(fā)送給已緩存文件列表。506、在步驟501中選出的所述下載服務(wù)器的集合中,選擇出連接數(shù)最少的一個(gè)下載服務(wù)器。507、將選擇出的下載服務(wù)器的下載方式設(shè)置為普通下載,并將步驟506選出的下載服務(wù)器對(duì)應(yīng)的請(qǐng)求文件的標(biāo)識(shí)和文件大小發(fā)送給未緩存文件列表。在下載控制服務(wù)器執(zhí)行完步驟505后,下載控制服務(wù)器還需對(duì)已緩存文件列表執(zhí)行以下步驟根據(jù)步驟505中發(fā)送給已緩存文件列表的請(qǐng)求文件的 標(biāo)識(shí)、提供緩存下載的下載服務(wù)器的地址,在已緩存文件列表中查找是否存在與所述請(qǐng)求文件的標(biāo)識(shí)、提供緩存下載的下載服務(wù)器的地址對(duì)應(yīng)的已緩存文件記錄;如果查找到所述已緩存文件記錄,將所述已緩存文件記錄的被請(qǐng)求次數(shù)加1,將所述已緩存文件記錄的最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間;如果未查找到所述已緩存文件記錄,則向所述提供緩存下載的下載服務(wù)器的地址發(fā)送帶有所述請(qǐng)求文件的標(biāo)識(shí)和文件大小的增加緩存文件消息;發(fā)送所述增加緩存文件消息后,在已緩存文件列表中添加所述發(fā)送給已緩存文件列表請(qǐng)求文件的記錄,包括記錄文件大小、記錄所述提供緩存下載的下載服務(wù)器的地址、將所述請(qǐng)求文件的被請(qǐng)求次數(shù)設(shè)為1、將所述請(qǐng)求文件的最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間。在下載控制服務(wù)器執(zhí)行完步驟507后,下載控制服務(wù)器還需對(duì)未緩存文件列表執(zhí)行以下步驟根據(jù)步驟507中發(fā)送給未緩存文件列表的請(qǐng)求文件的標(biāo)識(shí)在未緩存文件列表中查找是否存在與發(fā)送給未緩存文件列表的請(qǐng)求文件的標(biāo)識(shí)對(duì)應(yīng)的未緩存文件記錄;如果查找到所述未緩存文件記錄,將所述對(duì)未緩存文件記錄的被請(qǐng)求次數(shù)加1,將所述未緩存文件記錄的最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間;如果未查找到所述未緩存文件記錄,則在已緩存文件列表中添加所述發(fā)送給未緩存文件列表的請(qǐng)求文件的記錄,包括記錄文件大小、將請(qǐng)求文件的被請(qǐng)求次數(shù)設(shè)為1、將請(qǐng)求文件的最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間。本發(fā)明實(shí)施例的支持大并發(fā)量文件下載的方法,還提供對(duì)已緩存文件列表和未緩存文件列表中的文件的記錄進(jìn)行刪除的操作,如圖6所示,所述刪除的動(dòng)作包括以下步驟601、下載控制服務(wù)器按一定周期依次訪問未緩存文件列表的文件記錄,檢查當(dāng)前時(shí)間與每個(gè)文件記錄中的最后一次請(qǐng)求時(shí)間的差值是否超過1分鐘。在本實(shí)施例中,所述的一定周期可以為5秒。602、如果當(dāng)前時(shí)間與所述文件記錄的最后一次請(qǐng)求時(shí)間的差值超過1分鐘,從未緩存文件列表中刪除所述文件記錄,繼續(xù)檢查下一個(gè)文件記錄。603、檢查完未緩存文件列表的全部文件記錄后,再逐個(gè)訪問已緩存文件列表的文件記錄,檢查當(dāng)前時(shí)間與已緩存文件列表的每個(gè)文件記錄中的最后一次請(qǐng)求時(shí)間的差值是否超過1分鐘。604、如果當(dāng)前時(shí)間與所述已緩存文件列表的文件記錄的最后一次請(qǐng)求時(shí)間的差值超過1分鐘,向?yàn)樗鲆丫彺嫖募斜淼奈募峁┚彺娴南螺d服務(wù)器發(fā)送刪除緩存文件消息。605、當(dāng)下載控制服務(wù)器接收到所述提供緩存的下載服務(wù)器返回的刪除成功的消息后,將被下載服務(wù)器刪除緩存的文件的記錄從已緩存文件列表中刪除。在步驟605中將被下載服務(wù)器刪除緩存的文件的記錄從已緩存文件列表中刪除的過程中,同時(shí)還要將下載服務(wù)器列表中記錄的所述刪除緩存文件的下載服務(wù)器的可用內(nèi)存進(jìn)行增加,增加的容量等于所述被刪除的緩存文件的容量。如果在執(zhí)行步驟605時(shí),下載控制服務(wù)器未接收到所述提供緩存下載的下載服務(wù)器返回的刪除成功的消息,則不對(duì)當(dāng)前被檢查的文件記錄做處理,繼續(xù)檢查下一個(gè)文件記錄。圖6提供的對(duì)已緩存文件列表和未緩存文件列表的刪除操作,清理了長時(shí)間不被請(qǐng)求的文件的記錄。本發(fā)明實(shí)施例的支持大并發(fā)量文件下載的方法,還提供對(duì)進(jìn)行普通下載的文件分配可提供緩存下載的下載服務(wù)器的操作,如圖7所示,包括以下步驟701、將未緩存文件列表中的文件記錄按被請(qǐng)求次數(shù)從多到少進(jìn)行排序。702、從被請(qǐng)求次數(shù)最多的文件開始,下載控制服務(wù)器依照被請(qǐng)求次數(shù)從多到少的順序,針對(duì)所有未緩存文件列表中的文件記錄,查找是否有符合緩存下載要求的下載服務(wù)器。所述查找是否有符合緩存下載要求的下載服務(wù)器的方法,依照?qǐng)D5所示的操作步驟執(zhí)行。與圖5所示的操作步驟有所不同的是,如果未查找到可用服務(wù)器或是查找到的下載方式為普通下載,結(jié)束本次對(duì)進(jìn)行普通下載的文件分配可提供緩存下載的下載服務(wù)器的操作;如果查找到所述符合緩存下載要求的下載服務(wù)器,則將與所述符合緩存下載要求的下載服務(wù)器對(duì)應(yīng)的請(qǐng)求文件的記錄加入已緩存文件列表的同時(shí),還需執(zhí)行步驟703。703、將與所述符合緩存下載要求的下載服務(wù)器對(duì)應(yīng)的請(qǐng)求文件的記錄從未緩存文件列表刪除。圖7的操作過程,可以在完成圖6所示的對(duì)已緩存文件列表和未緩存文件列表中的文件的記錄的刪除的操作后進(jìn)行。本發(fā)明實(shí)施例的支持大并發(fā)量文件下載的方法,還提供以下操作過程接收新的下載服務(wù)器的注冊(cè),在下載服務(wù)器列表中記錄所述新的下載服務(wù)器的地址和可用內(nèi)存,并將所述新的下載服務(wù)器的狀態(tài)設(shè)置為在線狀態(tài),將所述新的下載服務(wù)器的時(shí)間記錄更新為當(dāng)前時(shí)間。本發(fā)明實(shí)施例的支持大并發(fā)量文件下載的方法,還提供以下操作過程接收所有下載服務(wù)器發(fā)送的狀態(tài)信息,所述狀態(tài)信息中包含對(duì)應(yīng)下載服務(wù)器的地址、連接狀態(tài)、當(dāng)前連接數(shù)、可用內(nèi)存。根據(jù)所述狀態(tài)信息,更新下載服務(wù)器列表中對(duì)應(yīng)的下載服務(wù)器的地址、當(dāng)前連接數(shù)、可用內(nèi)存,并將時(shí)間記錄更新為當(dāng)前時(shí)間。特別的,如果接收到處于離線狀態(tài)的下載服務(wù)器的狀態(tài)信息,則在下載服務(wù)器列表中將所述處于離線狀態(tài)的下載服務(wù)器的狀態(tài)重新設(shè)置為在線狀態(tài),更新所述重新設(shè)置為在線狀態(tài)的下載服務(wù)器的當(dāng)前連接數(shù)、可用內(nèi)存,并將時(shí)間記錄更新為當(dāng)前時(shí)間。本發(fā)明實(shí)施例的支持大并發(fā)量文件下載的方法,還提供以下操作過程周期性檢查所有下載服務(wù)器,將狀態(tài)異常的下載服務(wù)器設(shè)置為離線狀態(tài)。比如,可以以2秒為周期,檢查下載服務(wù)器列表中記錄的下載服務(wù)器的時(shí)間記錄,如果所述下載服務(wù)器的時(shí)間記錄與當(dāng)前時(shí)間差值超過6秒,則將所述差值超過6秒的下載服務(wù)器判斷為狀態(tài)異常,將連接狀態(tài)由在線狀態(tài)改為離線狀態(tài)。下載控制服務(wù)器在為客戶端選擇下載服務(wù)器時(shí),不會(huì)將離線狀態(tài)的下載服務(wù)器納入選擇范圍,直到所述離線狀態(tài)的下載服務(wù)器重新回到在線狀態(tài)。本實(shí)施例所述下載服務(wù)器列表中的信息包括所有下載服務(wù)器的地址及連接狀態(tài),每臺(tái)下載服務(wù)器的當(dāng)前連接數(shù)、可用內(nèi)存、時(shí)間記錄。本實(shí)施例所述已緩存文件列表中的信息包括已存儲(chǔ)到某下載服務(wù)器的內(nèi)存中并可進(jìn)行緩存下載的文件的標(biāo)識(shí)及文件大小,每個(gè)文件的被請(qǐng)求次數(shù)、最后一次請(qǐng)求時(shí)間及緩存文件的下載服務(wù)器地址;本實(shí)施例所述未緩存文件列表中的信息包括未存儲(chǔ)到下載服務(wù)器的內(nèi)存中并可進(jìn)行普通下載的文件的標(biāo)識(shí)及文件大小,每個(gè)文件的被請(qǐng)求次數(shù)、最后一次請(qǐng)求時(shí)間。 本實(shí)施例提供了一種支持大并發(fā)量文件下載的方法,下載控制服務(wù)器通過對(duì)緩存文件分布情況及下載服務(wù)器的負(fù)載情況進(jìn)行分析判斷,選出下載壓力最小的一臺(tái)下載服務(wù)器以提供文件下載服務(wù)。下載控制服務(wù)器在對(duì)下載服務(wù)器的控制及下載任務(wù)分配中,總能夠選擇出下載壓力最小的一臺(tái)下載服務(wù)器來提供下載服務(wù),當(dāng)出現(xiàn)大并發(fā)量下載的情況時(shí),可以實(shí)現(xiàn)對(duì)大并發(fā)量文件下載任務(wù)的優(yōu)化分配,從而減輕了大并發(fā)量文件的下載壓力。 同時(shí),下載控制服務(wù)器能夠?qū)彺嫖募M(jìn)行管理,通知下載服務(wù)器刪除長時(shí)間無下載請(qǐng)求的緩存文件,還可將下載服務(wù)器的下載方式由普通下載轉(zhuǎn)變?yōu)榫彺嫦螺d,不斷優(yōu)化下載服務(wù)器的服務(wù)質(zhì)量。實(shí)例3 本發(fā)明實(shí)施例公開了一種支持大并發(fā)量文件下載的裝置,如圖8所示,所述裝置包括服務(wù)器請(qǐng)求接收單元81、服務(wù)器獲取單元82、服務(wù)器請(qǐng)求返回單元83。所述服務(wù)器獲取單元82中,還包括第一查詢模塊821、第一記錄模塊822、第二查詢模塊823、第一選擇模塊824、第二選擇模塊825。下載控制服務(wù)器的服務(wù)器請(qǐng)求接收單元81接收客戶端的下載服務(wù)器查詢請(qǐng)求消息。根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,服務(wù)器獲取單元的第一查詢模塊821查詢文件服務(wù)器中是否存在所述請(qǐng)求文件,如果不存在所述請(qǐng)求文件,下載控制服務(wù)器通知客戶端不出在所述請(qǐng)求文件,結(jié)束客戶端本次下載請(qǐng)求;如果存在所述請(qǐng)求文件,第一記錄模塊822 記錄所述請(qǐng)求文件的大小。然后,第二查詢模塊823查詢所述請(qǐng)求文件是否已在下載服務(wù)器的緩存中,如果所述請(qǐng)求文件已在下載服務(wù)器的緩存中,則第一選擇模塊擬4在緩存有請(qǐng)求文件的下載服務(wù)器中選取一個(gè)最優(yōu)下載服務(wù)器,所述最優(yōu)下載服務(wù)器的客戶端連接數(shù)小于既定最大連接數(shù)且客戶端連接數(shù)最少。如果第二查詢模塊823查詢到所述請(qǐng)求文件不在任何下載服務(wù)器的緩存中,或所述最優(yōu)下載服務(wù)器不存在,則第二選擇模塊825從下載控制服務(wù)器所管轄的所有下載服務(wù)器中,選取一個(gè)處于在線狀態(tài)的下載服務(wù)器。服務(wù)器請(qǐng)求返回單元83將第一選擇模塊擬4選出的最優(yōu)下載服務(wù)器的地址、或第二選擇模塊825選出的處于在線狀態(tài)的下載服務(wù)器的地址返回給客戶端。所述第二選擇模塊8 還包括第一選擇子模塊8251、第二選擇子模塊8252、第三選擇子模塊8253、第一下載設(shè)置子模塊82M、第四選擇子模塊8255、第二下載設(shè)置子模塊 8256。在第二選擇模塊825選擇處于在線狀態(tài)的下載服務(wù)器時(shí),首先由第一選擇子模塊 8251從下載控制服務(wù)器的下載服務(wù)器列表中選擇處于在線狀態(tài)并且客戶端連接數(shù)小于既定最大連接數(shù)的下載服務(wù)器的集合。第二選擇子模塊8252在所述下載服務(wù)器的集合中,選擇可用內(nèi)存容量大于請(qǐng)求文件大小的一組下載服務(wù)器。然后,第三選擇子模塊8253在所述選擇出的一組下載服務(wù)器中,選擇出連接數(shù)最少的一個(gè)下載服務(wù)器。第一下載設(shè)置子模塊 82M將所述選擇出的連接數(shù)最少的下載服務(wù)器的下載方式設(shè)置為緩存下載,并將所述下載方式設(shè)置為緩存下載的文件的標(biāo)識(shí)和文件大小以及選擇出的連接數(shù)最少的下載服務(wù)器的地址發(fā)送給已緩存文件列表。若在所述下載服務(wù)器的集合中,不存在可用內(nèi)存容量大于請(qǐng)求文件大小的下載服務(wù)器,則第四選擇子模塊8255在所述下載服務(wù)器集合中選擇出連接數(shù)最少的一個(gè)下載服務(wù)器。然后由第二下載設(shè)置子模塊8256將所述選擇出的連接數(shù)最少的下載服務(wù)器的下載方式設(shè)置為普通下載,并將所述下載方式設(shè)置為普通下載的文件的標(biāo)識(shí)和文件大小發(fā)送給未緩存文件列表。第一下載設(shè)置子模塊82M將所述下載方式設(shè)置為緩存下載的文件的標(biāo)識(shí)和文件大小以及選擇出的連接數(shù)最少的下載服務(wù)器的地址發(fā)送給已緩存文件列表后,如圖9所示,所述裝置還包括已緩存文件查找單元91、已緩存文件更新單元92、新緩存消息發(fā)送單元93、第一文件添加單元94。
已緩存文件查找單元91根據(jù)所述文件的標(biāo)識(shí)和所述下載服務(wù)器的地址在已緩存文件列表中查找是否存在所述文件的記錄。在查找到所述文件的記錄時(shí),已緩存文件更新單元92將所述文件的被請(qǐng)求次數(shù)加1,將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間。在未查找到所述文件的記錄時(shí),新緩存消息發(fā)送單元93向所述下載服務(wù)器的地址發(fā)送帶有所述文件的標(biāo)識(shí)和文件大小的增加緩存文件消息。在發(fā)送所述增加緩存文件消息后,第一文件添加單元94在已緩存文件列表中添加所述文件的記錄,包括記錄文件大小、記錄所述下載服務(wù)器的地址、將所述文件的被請(qǐng)求次數(shù)設(shè)為1、將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間。 第二下載設(shè)置子模塊8256將所述下載方式設(shè)置為普通下載的文件的標(biāo)識(shí)和文件大小以及選擇出的連接數(shù)最少的下載服務(wù)器的地址發(fā)送給未緩存文件列表后,如圖9所示,所述裝置還包括未緩存文件查找單元95、未緩存文件更新單元96、第二文件添加單元 97。未緩存文件查找單元95根據(jù)所述文件的標(biāo)識(shí)在未緩存文件列表中查找是否存在所述文件的記錄。在查找到所述文件的記錄時(shí),未緩存文件更新單元96將所述文件的被請(qǐng)求次數(shù)加1,將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間。在未查找到所述文件的記錄時(shí),第二文件添加單元97在未緩存文件列表中添加所述文件的記錄,包括記錄文件大小、將所述文件的被請(qǐng)求次數(shù)設(shè)為1、將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間。本發(fā)明實(shí)施例的支持大并發(fā)量文件下載的裝置,還提供對(duì)已緩存文件列表和未緩存文件列表中的文件的記錄進(jìn)行刪除的操作,以及對(duì)進(jìn)行普通下載的文件分配可提供緩存下載的下載服務(wù)器的操作。如圖10所示,所述裝置還包括文件刪除控制單元101、緩存下載分配單元102。文件刪除控制單元101周期性檢查已緩存文件列表和未緩存文件列表,將近期沒有下載請(qǐng)求的文件的記錄從已緩存文件列表和未緩存文件列表中刪除。緩存下載分配單元102對(duì)進(jìn)行普通下載的文件分配可提供緩存下載的下載服務(wù)器。在本實(shí)施例中,文件刪除控制單元101可以5秒為周期檢查已緩存文件列表和未緩存文件列表。緩存下載分配單元102可以在文件刪除控制單元101完成對(duì)已緩存文件列表和未緩存文件列表中的文件的記錄的刪除的操作后,再執(zhí)行對(duì)進(jìn)行普通下載的文件分配可用的下載服務(wù)器的操作。本發(fā)明實(shí)施例提供的支持大并發(fā)量文件下載的裝置,如圖11所述,所述裝置還包括服務(wù)器注冊(cè)單元111、狀態(tài)接收控制單元112、狀態(tài)周期檢查單元113。服務(wù)器注冊(cè)單元111接收新的下載服務(wù)器的注冊(cè),將所述新的下載服務(wù)器的信息記錄到下載服務(wù)器列表。狀態(tài)接收控制單元112接收所有下載服務(wù)器的狀態(tài)信息,并在接收到處于離線狀態(tài)的下載服務(wù)器的狀態(tài)信息時(shí),將下載服務(wù)器列表中記錄的所述處于離線狀態(tài)的下載服務(wù)器設(shè)置為在線狀態(tài)。狀態(tài)周期檢查單元113周期性對(duì)下載服務(wù)器列表中的所有下載服務(wù)器的信息進(jìn)行檢查,將狀態(tài)異常的下載服務(wù)器設(shè)置為離線狀態(tài)。比如,本實(shí)施例中,狀態(tài)周期檢查單元 113可以以2秒為周期,檢查下載服務(wù)器列表中記錄的下載服務(wù)器的時(shí)間記錄,如果所述下載服務(wù)器的時(shí)間記錄與當(dāng)前時(shí)間差值超過6秒,則將所述差值超過6秒的下載服務(wù)器判斷為狀態(tài)異常,將連接狀態(tài)由在線狀態(tài)改為離線狀態(tài)。下載控制服務(wù)器在為客戶端選擇下載服務(wù)器時(shí),不會(huì)將離線狀態(tài)的下載服務(wù)器納入選擇范圍,直到所述離線狀態(tài)的下載服務(wù)器重新回到在線狀態(tài)。
本實(shí)施例所述的下載服務(wù)器列表、已緩存文件列表、未緩存文件列表可參照實(shí)施例2中對(duì)下載服務(wù)器列表、已緩存文件列表、未緩存文件列表進(jìn)行的描述。本實(shí)施例提供了一種支持大并發(fā)量文件下載的裝置,下載控制服務(wù)器通過對(duì)緩存文件分布情況及下載服務(wù)器的負(fù)載情況進(jìn)行分析,選出下載壓力最小的一臺(tái)下載服務(wù)器。 當(dāng)出現(xiàn)大并發(fā)量下載的情況時(shí),下載控制服務(wù)器對(duì)下載服務(wù)器的控制及下載任務(wù)進(jìn)行均衡分配,選擇出下載壓力最小的一臺(tái)下載服務(wù)器來提供下載服務(wù),實(shí)現(xiàn)了對(duì)大并發(fā)量文件下載任務(wù)的優(yōu)化分配,減輕了大并發(fā)量文件的下載對(duì)下載服務(wù)器造成的負(fù)擔(dān)。同時(shí),下載控制服務(wù)器能夠?qū)彺嫖募M(jìn)行管理,通知下載服務(wù)器刪除長時(shí)間無下載請(qǐng)求的緩存文件, 還可將下載服務(wù)器的下載方式由普通下載轉(zhuǎn)變?yōu)榫彺嫦螺d,不斷優(yōu)化下載服務(wù)器的服務(wù)質(zhì)量。實(shí)例 4:本實(shí)施例提供了一種支持大并發(fā)量文件下載的系統(tǒng),如圖12所示,所述系統(tǒng)包括下載控制服務(wù)器121、客戶端122、下載服務(wù)器123。所述客戶端的數(shù)量一般為兩個(gè)或兩個(gè)以上,所述下載服務(wù)器的數(shù)量一般為兩個(gè)或兩個(gè)以上??蛻舳?22向下載控制服務(wù)器121發(fā)送下載服務(wù)器查詢請(qǐng)求消息,所述下載服務(wù)器查詢請(qǐng)求消息中攜帶需下載文件的標(biāo)識(shí)。下載控制服務(wù)器121接收客戶端122的下載服務(wù)器查詢請(qǐng)求消息后,根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和各下載服務(wù)器的負(fù)載情況,獲取下載服務(wù)器123,將所述獲取的下載服務(wù)器123的地址發(fā)送給客戶端31,指示客戶端122從下載服務(wù)器123中下載文件。客戶端122在接收到下載控制服務(wù)器121返回的下載服務(wù)器123地址后,向下載服務(wù)器123發(fā)起文件下載請(qǐng)求消息。下載服務(wù)器123在接收到客戶端122的文件下載請(qǐng)求消息后,向客戶端122提供緩存下載或普通下載。下載控制服務(wù)器121還用于接收新加入的下載服務(wù)器的注冊(cè),在下載服務(wù)器列表中記錄所述新加入的下載服務(wù)器的地址和可用內(nèi)存,并將所述新加入的下載服務(wù)器的狀態(tài)設(shè)置為在線狀態(tài),將所述新加入的下載服務(wù)器的時(shí)間記錄更新為當(dāng)前時(shí)間。下載控制服務(wù)器121還用于接收所有下載服務(wù)器發(fā)送的狀態(tài)信息,所述狀態(tài)信息中包含對(duì)應(yīng)下載服務(wù)器的地址、連接狀態(tài)、當(dāng)前連接數(shù)、可用內(nèi)存。以下載服務(wù)器123為例進(jìn)行說明,當(dāng)下載控制服務(wù)器121接收到下載服務(wù)器123的狀態(tài)信息后,更新下載服務(wù)器列表中下載服務(wù)器123的地址、當(dāng)前連接數(shù)、可用內(nèi)存,并將時(shí)間記錄更新為當(dāng)前時(shí)間。特別的,如果接收到處于離線狀態(tài)的下載服務(wù)器123的狀態(tài)信息,則在下載服務(wù)器列表中將下載服務(wù)器123的狀態(tài)重新設(shè)置為在線狀態(tài),并更新下載服務(wù)器123的當(dāng)前連接數(shù)、可用內(nèi)存,并將時(shí)間記錄更新為當(dāng)前時(shí)間。另外,下載控制服務(wù)器121周期性檢查下載服務(wù)器列表中的所有下載服務(wù)器,將狀態(tài)異常的下載服務(wù)器設(shè)置為離線狀態(tài)。比如,以2秒為周期,檢查下載服務(wù)器列表中記錄的下載服務(wù)器的時(shí)間記錄。以下載服務(wù)器123為例,檢查其時(shí)間記錄,如果下載服務(wù)器123 的時(shí)間記錄與當(dāng)前時(shí)間差值超過6秒,則將下載服務(wù)器123判斷為狀態(tài)異常,將連接狀態(tài)由在線狀態(tài)改為離線狀態(tài)。下載控制服務(wù)器121在為客戶端選擇下載服務(wù)器時(shí),不會(huì)將離線狀態(tài)的下載服務(wù)器123納入選擇范圍,直到下載服務(wù)器123重新回到在線狀態(tài)。
下載控制服務(wù)器121為某請(qǐng)求文件獲取到一個(gè)新的下載服務(wù)器123時(shí),還對(duì)下載方式進(jìn)行選擇。若下載方式選擇為緩存下載,則下載控制服務(wù)器121向下載服務(wù)器123發(fā)送增加緩存文件消息。下載服務(wù)器123接收所述增加緩存文件消息后,為所述某請(qǐng)求文件分配緩存空間。下載控制服務(wù)器121還提供對(duì)已緩存文件列表和未緩存文件列表中的文件的記錄進(jìn)行刪除的操作,具體操作步驟可參考實(shí)施例2中的步驟601至605。本實(shí)施例中,以下載服務(wù)器123為已緩存文件列表的文件提供緩存為例進(jìn)行說明下載控制服務(wù)器121向下載服務(wù)器123發(fā)送刪除緩存文件消息,下載服務(wù)器123接收所述刪除緩存文件消息后,將與所述刪除緩存文件消息對(duì)應(yīng)的緩存從內(nèi)存中刪除,并向下載控制服務(wù)器121返回一個(gè)刪除成功消息。下載控制服務(wù)器接收所述刪除成功消息后,將被下載服務(wù)器123刪除緩存的文件的記錄從已緩存文件列表中刪除。本實(shí)施例中的下載服務(wù)器需進(jìn)行下載服務(wù)器初始化。所述初始化包括將可用內(nèi)存賦值為所述下載服務(wù)器的最大可用內(nèi)存值、將當(dāng)前客戶端的連接數(shù)設(shè)為0,并向下載控制服務(wù)器121發(fā)起注冊(cè),所述注冊(cè)的內(nèi)容包括所述下載服務(wù)器的地址及可用內(nèi)存。本實(shí)施列中的下載服務(wù)器還需周期性向下載控制服務(wù)器121發(fā)送狀態(tài)信息,所述狀態(tài)信息包含所述下載服務(wù)器的地址、連接狀態(tài)、當(dāng)前連接數(shù)、可用內(nèi)存。本實(shí)施例中,發(fā)送狀態(tài)信息的周期可以設(shè)置為0.1秒。本實(shí)施例中的下載服務(wù)器還提供緩存管理功能。所述緩存管理功能包括緩存的初始化、緩存文件的增加、緩存文件的刪除。以下載服務(wù)器123為例,緩存的初始化按照以下方式進(jìn)行。下載服務(wù)器123中, 根據(jù)自身的最大可用內(nèi)存值和內(nèi)存塊大小block_Size計(jì)算出內(nèi)存塊數(shù)MAX_N(MAX_N等于所述自身的最大內(nèi)存值除以block_Size)。根據(jù)每個(gè)內(nèi)存塊的起始地址,按起始地址由低到高的順序,為每個(gè)內(nèi)存塊分配索引號(hào)block_idX。block_idx由0開始,排列到MAX_N-1。 下載服務(wù)器123創(chuàng)建一個(gè)空閑內(nèi)存鏈表,所述空閑內(nèi)存鏈表記錄block_idX以及block_ idx對(duì)應(yīng)的內(nèi)存地址(blockjdx對(duì)應(yīng)的內(nèi)存地址等于所述最大可用內(nèi)存值的起始地址加上bl0Ck_idX*bl0Ck_size)。在緩存的初始化中,所有內(nèi)存塊都設(shè)置為空閑,存儲(chǔ)在一個(gè)空閑內(nèi)存哈希表中。所述空閑內(nèi)存哈希表中還記錄了一個(gè)空閑內(nèi)存塊數(shù)N,在所述緩存的初始化時(shí),所述空閑內(nèi)存塊數(shù)N被賦值為MAX_N。同時(shí),在所述緩存的初始化中,下載服務(wù)器123 還創(chuàng)建一個(gè)緩存文件信息表。所述緩存文件信息表的每條緩存文件信息項(xiàng)包括緩存文件的標(biāo)識(shí)、緩存文件的大小、一個(gè)內(nèi)存塊索引數(shù)組、一個(gè)內(nèi)存塊可用標(biāo)志數(shù)組以及緩存文件占用的內(nèi)存塊數(shù)。所述內(nèi)存塊索引數(shù)組記錄所在緩存文件信息項(xiàng)的緩存文件占用的各內(nèi)存塊的起始地址及block_idX。內(nèi)存塊可用標(biāo)志數(shù)組記錄所在緩存文件信息項(xiàng)的緩存文件占用的各個(gè)內(nèi)存塊是否可用。以下載服務(wù)器123為例,緩存文件的增加按照以下方式進(jìn)行。首先,下載服務(wù)器 123接收下載控制服務(wù)器121的增加緩存文件消息,所述增加緩存文件消息包含請(qǐng)求文件的標(biāo)識(shí)及文件大小file_Size。計(jì)算需要的內(nèi)存塊數(shù)n(內(nèi)存塊數(shù)η等于文件大小除以內(nèi)存塊大小,如果計(jì)算出的內(nèi)存塊數(shù)η不是整數(shù),則將內(nèi)存塊數(shù)η向上取整)。若所述內(nèi)存塊數(shù)η 大于空閑內(nèi)存塊數(shù)N,則下載服務(wù)器123向下載控制服務(wù)器121返回增加緩存文件失敗的消息。若所述內(nèi)存塊數(shù)η不大于空閑內(nèi)存塊數(shù)N,為所述請(qǐng)求文件分配一個(gè)緩存文件信息項(xiàng),記錄所述請(qǐng)求文件的標(biāo)識(shí)、文件大小,并將緩存文件占用的內(nèi)存塊數(shù)設(shè)置為n,同時(shí),從所述空閑哈希表的表頭方向開始,取出η個(gè)連續(xù)的空閑內(nèi)存塊的記錄,將所述空閑內(nèi)存塊的記錄記入內(nèi)存索引數(shù)組的前η項(xiàng),將內(nèi)存塊可用標(biāo)志數(shù)組前η項(xiàng)設(shè)置為不可用。然后,清除空閑內(nèi)存哈希表中對(duì)應(yīng)的η個(gè)連續(xù)的空閑內(nèi)存塊記錄,并將空閑內(nèi)存塊數(shù)N減去η。然后,向下載控制服務(wù)器121回復(fù)增加緩存文件成功的消息。最后,下載服務(wù)器123根據(jù)所述請(qǐng)求文件的標(biāo)識(shí)向文件服務(wù)器申請(qǐng)所述請(qǐng)求文件,文件服務(wù)器將所述請(qǐng)求文件對(duì)應(yīng)的數(shù)據(jù)依次存入所述η個(gè)連續(xù)的空閑內(nèi)存塊,每填滿一個(gè)空閑內(nèi)存塊,就將對(duì)應(yīng)的內(nèi)存塊可用標(biāo)志數(shù)組的數(shù)組項(xiàng)設(shè)置為可用。在設(shè)置為可用后,客戶端121才能對(duì)緩存文件進(jìn)行下載。上述下載服務(wù)器123根據(jù)所述請(qǐng)求文件的標(biāo)識(shí)向文件服務(wù)器申請(qǐng)所述請(qǐng)求文件的操作過程是下載服務(wù)器123向文件服務(wù)器發(fā)起η次文件請(qǐng)求消息,所述文件請(qǐng)求消息包含所述請(qǐng)求文件的標(biāo)識(shí)、每次從文件服務(wù)器請(qǐng)求文件的開始位置Start_p0S(Start_p0S = i*data_size)、每次文件請(qǐng)求消息申請(qǐng)的數(shù)據(jù)大小data_SiZe,其中i表示內(nèi)存塊索引數(shù)組第 i 項(xiàng),i 的取值范圍為從 0 至 n-1。當(dāng) i < n-1 時(shí),data_size = block_size。當(dāng) i = n_l 時(shí),data_SiZe = file_SiZe-i*bl0Ck_SiZe。對(duì)于每次所述的文件請(qǐng)求消息,文件服務(wù)器將對(duì)應(yīng)的數(shù)據(jù)傳輸?shù)綄?duì)應(yīng)的內(nèi)存塊中。以下載服務(wù)器123為例,緩存文件的刪除按照以下方式進(jìn)行。首先,下載服務(wù)器 123接收下載控制服務(wù)器121的刪除緩存文件消息,所述刪除緩存文件消息包含待刪除文件的標(biāo)識(shí)及文件大小。根據(jù)所述待刪除文件的標(biāo)識(shí)在緩存文件信息表中查找對(duì)應(yīng)的緩存文件信息項(xiàng),取得所述待刪除文件占用的內(nèi)存塊數(shù)m。將所述待刪除文件對(duì)應(yīng)的內(nèi)存塊索引數(shù)組的前m項(xiàng)依次添加到所述空閑哈希表,并將空閑內(nèi)存塊數(shù)N加m。最后,刪除所述待刪除文件對(duì)應(yīng)的緩存文件信息項(xiàng)。本實(shí)施例中,下載服務(wù)器123向客戶端122提供緩存下載或普通下載的判斷方法如下接收客戶端122的文件下載請(qǐng)求消息,所述文件下載請(qǐng)求消息包括請(qǐng)求文件的標(biāo)識(shí)、 下載起始位置from_poS,根據(jù)fr0m_p0S的取值,支持客戶端從任意位置開始數(shù)據(jù)續(xù)傳。比如,如果fr0m_p0S = 0,則從文件存儲(chǔ)的起始位置開始下載傳輸;如果fr0m_p0S大于0,則從距起始位置from_poS長度的位置開始續(xù)傳。如果當(dāng)前的連接數(shù)大于等于既定最大連接數(shù),則向客戶端返回拒絕下載消息。如果當(dāng)前的連接數(shù)小于既定最大連接數(shù),則根據(jù)所述請(qǐng)求文件的標(biāo)識(shí)查找緩存文件信息表,如果找到對(duì)應(yīng)的緩存文件信息表項(xiàng),則提供緩存下載; 否則提供普通下載。下載服務(wù)器123將自身的連接數(shù)加1,并將總帶寬除以所有的連接數(shù)得到的帶寬量設(shè)定為新的下載比特率,如果所述新的下載比特率大于既定最大下載比特率, 將新的下載比特率修正為所述既定最大下載比特率。下載服務(wù)器123向客戶端122提供對(duì)所述請(qǐng)求文件的緩存下載的處理過程為(1)、從所述請(qǐng)求文件的標(biāo)識(shí)對(duì)應(yīng)的緩存文件信息表項(xiàng)取得占用的內(nèi)存塊數(shù)η ;(2)、根據(jù)fr0m_p0S計(jì)算開始進(jìn)行下載的內(nèi)存塊from_n,計(jì)算方法為from_n = fr0m_p0S/bl0ck_Size。后續(xù)依次讀取n-from_n個(gè)內(nèi)存塊,并將內(nèi)存塊的數(shù)據(jù)發(fā)送給客戶端 122 ;(3)、i代表當(dāng)前發(fā)送緩存文件的第i個(gè)內(nèi)存塊(i取值范圍from_n到n_l),首先判斷緩存文件的可用標(biāo)志數(shù)組第i項(xiàng)是否為可用狀態(tài),如果為不可用狀態(tài),等待0. Is再次判斷狀態(tài),循環(huán)判斷直到可用標(biāo)志為可用狀態(tài),如果當(dāng)前i為from_n,轉(zhuǎn)到4)處理,否則轉(zhuǎn)到5)處理;(4)、計(jì)算下載起始位置from_poS在當(dāng)前內(nèi)存塊的偏移位置from_off (fr0m_0fT =from_pos%block_size),從內(nèi)存塊索引數(shù)組第i項(xiàng)記錄的內(nèi)存塊的起始地址加上from_ off處開始,取得data_size大小的數(shù)據(jù)發(fā)送客戶端122。如果i < n_l,data_size = block_ size-from_ofT,如果 i = n-1, data_size = file_size_i 氺 block_size-from_off0(5)、從內(nèi)存塊索引數(shù)組第i項(xiàng)記錄的內(nèi)存塊的起始地址取出data_SiZe大小的數(shù)據(jù)發(fā)送客戶端 122。如果 i < n-1, data_size = block_size,如果 i = n-1, data_size = file_size-i*block_size。(6)、將data_SiZe大小數(shù)據(jù)發(fā)送客戶端122后,將i加1,如果i < n,回到(3)繼續(xù)處理過程,如果i = n,結(jié)束對(duì)客戶端122的此次文件緩存下載處理過程。下載服務(wù)器123向客戶端122提供對(duì)所述請(qǐng)求文件的普通下載的處理過程為(7)、下載服務(wù)器123為所述進(jìn)行普通下載的文件分配256KB的臨時(shí)緩存,并設(shè)置一個(gè)已讀取文件長度reacLlen,用以記錄已經(jīng)從文件服務(wù)器中讀取的文件數(shù)據(jù)長度,將 read—Ien 初始化為 from_pos0(8)、下載服務(wù)器123根據(jù)所述進(jìn)行普通下載的文件的標(biāo)識(shí)查詢文件服務(wù)器,獲得所述進(jìn)行普通下載的文件的filejize。(9)、如果reacLlen < file_siZe,下載服務(wù)器123向文件服務(wù)器發(fā)送普通下載請(qǐng)求消息,所述普通下載請(qǐng)求消息包含所述進(jìn)行普通下載的文件的標(biāo)識(shí)、請(qǐng)求的開始位置 read_len、請(qǐng)求的數(shù)據(jù)大小data_size。如果file_size減去read_len的差值大于256KB, data_size 取值 256KB ;若所述差值小于等于 256KB,data_size = f ile_size_read_len。文件服務(wù)器將data_SiZe大小的文件數(shù)據(jù)傳輸?shù)剿雠R時(shí)緩存中。(10)、下載服務(wù)器123將所述臨時(shí)緩存中的文件數(shù)據(jù)發(fā)送給客戶端122,發(fā)送完成后將read_len加上data_size。如果read_len小于f ile_size,轉(zhuǎn)到普通下載的處理過程 (9)進(jìn)行普通下載的處理;如果reacLlen等于f ile_siZe,完成普通下載的處理。此外,本系統(tǒng)所使用的文件服務(wù)器獨(dú)立于下載服務(wù)器之外,文件服務(wù)器的文件存儲(chǔ)不受下載服務(wù)器的限制,不需將被請(qǐng)求文件在文件服務(wù)器的存儲(chǔ)位置通知下載服務(wù)器。 在當(dāng)新的下載服務(wù)器連接入系統(tǒng)時(shí),文件服務(wù)器的文件存儲(chǔ)不受影響,保證了文件服務(wù)器中存儲(chǔ)的數(shù)據(jù)的穩(wěn)定性。本實(shí)施例所述的下載服務(wù)器列表、已緩存文件列表、未緩存文件列表可參照實(shí)施例2中對(duì)下載服務(wù)器列表、已緩存文件列表、未緩存文件列表進(jìn)行的描述。本實(shí)施例提供了一種支持大并發(fā)量文件下載的裝置,通過下載服務(wù)器和下載控制服務(wù)器組成的系統(tǒng)實(shí)現(xiàn)對(duì)文件下載的負(fù)載均衡分配,較好的解決了出現(xiàn)大并發(fā)量文件下載時(shí)服務(wù)器處理瓶頸問題。同時(shí),下載控制服務(wù)器通過對(duì)下載服務(wù)器的控制實(shí)現(xiàn)了緩存文件的管理,適時(shí)的刪除或增加緩存文件,提高下載速度并進(jìn)一步降低下載壓力。通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤,硬盤或光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。 以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種支持大并發(fā)量文件下載的方法,其特征在于,包括 下載控制服務(wù)器接收客戶端的下載服務(wù)器查詢請(qǐng)求消息;根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和下載服務(wù)器的負(fù)載情況, 獲取一個(gè)下載服務(wù)器;將所述獲取的一個(gè)下載服務(wù)器的地址發(fā)送給所述客戶端,指示客戶端從所述地址對(duì)應(yīng)的下載服務(wù)器中下載文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述下載控制服務(wù)器中還維護(hù)了一個(gè)下載服務(wù)器列表,一個(gè)已緩存文件列表,一個(gè)未緩存文件列表;所述下載服務(wù)器列表中的信息包括所有下載服務(wù)器的地址及連接狀態(tài),每臺(tái)下載服務(wù)器的當(dāng)前連接數(shù)、可用內(nèi)存、時(shí)間記錄;所述已緩存文件列表中的信息包括已存儲(chǔ)到某下載服務(wù)器的內(nèi)存中并可進(jìn)行緩存下載的文件的標(biāo)識(shí)及文件大小,每個(gè)文件的被請(qǐng)求次數(shù)、最后一次請(qǐng)求時(shí)間及緩存文件的下載服務(wù)器地址;所述未緩存文件列表中的信息包括未存儲(chǔ)到下載服務(wù)器的內(nèi)存中并可進(jìn)行普通下載的文件的標(biāo)識(shí)及文件大小,每個(gè)文件的被請(qǐng)求次數(shù)、最后一次請(qǐng)求時(shí)間。
3.根據(jù)權(quán)利要求1、2所述的方法,其特征在于,所述根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和下載服務(wù)器的負(fù)載,獲取下載服務(wù)器,包括根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息查詢文件服務(wù)器中是否存在所述請(qǐng)求文件; 記錄所述請(qǐng)求文件的大小;若存在所述請(qǐng)求文件,則查詢所述請(qǐng)求文件是否已在下載服務(wù)器的緩存中; 若所述請(qǐng)求文件已在下載服務(wù)器的緩存中,則從所述緩存有請(qǐng)求文件的下載服務(wù)器中選取一個(gè)客戶端連接數(shù)小于既定最大連接數(shù)且客戶端數(shù)量最少的下載服務(wù)器;若所述請(qǐng)求文件不在下載服務(wù)器的緩存中,或是緩存有請(qǐng)求文件的下載服務(wù)器中的客戶端連接數(shù)均大于等于既定最大連接數(shù),則從下載控制服務(wù)器所管轄的所有下載服務(wù)器中選取一個(gè)處于在線狀態(tài)的下載服務(wù)器。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述從下載控制服務(wù)器所管轄的所有下載服務(wù)器中選取一個(gè)處于在線狀態(tài)的下載服務(wù)器包括從下載控制服務(wù)器的下載服務(wù)器列表中選擇處于在線狀態(tài)并且客戶端連接數(shù)小于既定最大連接數(shù)的下載服務(wù)器的集合;在所述下載服務(wù)器的集合中,選擇可用內(nèi)存容量大于請(qǐng)求文件大小的一組下載服務(wù)器;在所述選擇出的一組下載服務(wù)器中,選擇出連接數(shù)最少的一個(gè)下載服務(wù)器; 將所述選擇出的一個(gè)下載服務(wù)器的下載方式設(shè)置為緩存下載,并將所述下載方式設(shè)置為緩存下載的文件的標(biāo)識(shí)和文件大小以及選擇出的連接數(shù)最少的下載服務(wù)器的地址發(fā)送給已緩存文件列表。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,將所述下載方式設(shè)置為緩存下載的文件的標(biāo)識(shí)和文件大小以及選擇出的連接數(shù)最少的下載服務(wù)器的地址發(fā)送給已緩存文件列表后,還包括根據(jù)所述文件的標(biāo)識(shí)和所述下載服務(wù)器的地址在已緩存文件列表中查找是否存在所述文件的記錄;如果查找到所述文件的記錄,將所述文件的被請(qǐng)求次數(shù)加1,將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間;如果未查找到所述文件的記錄,則向所述下載服務(wù)器的地址發(fā)送帶有所述文件的標(biāo)識(shí)和文件大小的增加緩存文件消息;發(fā)送所述增加緩存文件消息后,在已緩存文件列表中添加所述文件的記錄,包括記錄文件大小、記錄所述下載服務(wù)器的地址、將所述文件的被請(qǐng)求次數(shù)設(shè)為1、將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括如果在所述下載服務(wù)器的集合中,不存在可用內(nèi)存容量大于請(qǐng)求文件大小的下載服務(wù)器,則在所述下載服務(wù)器集合中選擇出連接數(shù)最少的一個(gè)下載服務(wù)器;將所述選擇出的一個(gè)下載服務(wù)器的下載方式設(shè)置為普通下載,并將所述下載方式設(shè)置為普通下載的文件的標(biāo)識(shí)和文件大小發(fā)送給未緩存文件列表。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,將所述下載方式設(shè)置為普通下載的文件的標(biāo)識(shí)和文件大小發(fā)送給未緩存文件列表后,還包括根據(jù)所述文件的標(biāo)識(shí)在未緩存文件列表中查找是否存在所述文件的記錄; 如果查找到所述文件的記錄,將所述文件的被請(qǐng)求次數(shù)加1,將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間;如果未查找到所述文件的記錄,則在未緩存文件列表中添加所述文件的記錄,包括記錄文件大小、將所述文件的被請(qǐng)求次數(shù)設(shè)為1、將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間。
8.根據(jù)權(quán)利要求4或6所述的方法,其特征在于,所述方法還包括定期檢查已緩存文件列表和未緩存文件列表,將近期沒有下載請(qǐng)求的文件的記錄從已緩存文件列表和未緩存文件列表中刪除;對(duì)進(jìn)行普通下載的文件分配可提供緩存下載的下載服務(wù)器。
9.根據(jù)權(quán)利要求8所述的方法,所述將近期沒有下載請(qǐng)求的文件的記錄從已緩存文件列表和未緩存文件列表中刪除包括逐個(gè)訪問未緩存文件列表的文件記錄,檢查當(dāng)前時(shí)間與每個(gè)文件記錄中的最后一次請(qǐng)求時(shí)間的差值是否超過1分鐘;如果當(dāng)前時(shí)間與所述文件記錄的最后一次請(qǐng)求時(shí)間的差值超過1分鐘,從未緩存文件列表中刪除所述文件記錄;檢查完未緩存文件列表的全部文件記錄后,再逐個(gè)訪問已緩存文件列表的文件記錄, 檢查當(dāng)前時(shí)間與已緩存文件列表的每個(gè)文件記錄中的最后一次請(qǐng)求時(shí)間的差值是否超過1 分鐘;如果當(dāng)前時(shí)間與所述已緩存文件列表的文件記錄的最后一次請(qǐng)求時(shí)間的差值超過1 分鐘,向?yàn)樗鲆丫彺嫖募斜淼奈募峁┚彺娴南螺d服務(wù)器發(fā)送刪除緩存文件消息;所述提供緩存的下載服務(wù)器返回刪除成功的消息后,將被刪除文件的記錄從已緩存文件列表中刪除;所述對(duì)進(jìn)行普通下載的文件分配可用的下載服務(wù)器進(jìn)行緩存下載包括 將未緩存文件列表中的文件記錄按被請(qǐng)求次數(shù)從多到少進(jìn)行排序;從被請(qǐng)求次數(shù)最多的文件開始,針對(duì)所有未緩存文件列表中的文件記錄,查找是否有符合緩存下載要求的下載服務(wù)器;如果檢測(cè)到所述符合緩存下載要求的下載服務(wù)器,則將對(duì)應(yīng)的請(qǐng)求文件的記錄加入已緩存文件列表并將所述對(duì)應(yīng)的請(qǐng)求文件的記錄從未緩存文件列表刪除。
10.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述方法還包括接收新的下載服務(wù)器的注冊(cè),將所述新的下載服務(wù)器的信息記錄到下載服務(wù)器列表; 接收所有下載服務(wù)器的狀態(tài)信息,所述下載服務(wù)器的狀態(tài)信息包括所述下載服務(wù)器的地址、連接數(shù)、可用內(nèi)存;所述下載控制服務(wù)器接收所述狀態(tài)信息后,更新下載服務(wù)器列表中記錄的所述下載服務(wù)器的連接數(shù)、可用內(nèi)存,如果接收到處于離線狀態(tài)的下載服務(wù)器的狀態(tài)信息,將所述處于離線狀態(tài)的下載服務(wù)器設(shè)置為在線狀態(tài);周期性檢查所有下載服務(wù)器,將狀態(tài)異常的下載服務(wù)器設(shè)置為離線狀態(tài)。
11.一種支持大并發(fā)量文件下載的裝置,其特征在于,包括 服務(wù)器請(qǐng)求接收單元,用于接收客戶端的下載服務(wù)器查詢請(qǐng)求消息;服務(wù)器獲取單元,用于根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和下載服務(wù)器的負(fù)載情況,獲取一個(gè)下載服務(wù)器;服務(wù)器請(qǐng)求返回單元,用于將所述獲取的一個(gè)下載服務(wù)器的地址發(fā)送給所述客戶端, 指示客戶端從所述地址對(duì)應(yīng)的下載服務(wù)器中下載文件。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述下載控制服務(wù)器中還維護(hù)了一個(gè)下載服務(wù)器列表,一個(gè)已緩存文件列表,一個(gè)未緩存文件列表;所述下載服務(wù)器列表中的信息包括所有下載服務(wù)器的地址及連接狀態(tài),每臺(tái)下載服務(wù)器的當(dāng)前連接數(shù)、可用內(nèi)存、時(shí)間記錄;所述已緩存文件列表中的信息包括已存儲(chǔ)到某下載服務(wù)器的內(nèi)存中并可進(jìn)行緩存下載的文件的標(biāo)識(shí)及文件大小,每個(gè)文件的被請(qǐng)求次數(shù)、最后一次請(qǐng)求時(shí)間及緩存文件的下載服務(wù)器地址;所述未緩存文件列表中的信息包括未存儲(chǔ)到下載服務(wù)器的內(nèi)存中并可進(jìn)行普通下載的文件的標(biāo)識(shí)及文件大小,每個(gè)文件的被請(qǐng)求次數(shù)、最后一次請(qǐng)求時(shí)間。
13.根據(jù)權(quán)利要求11、12所述的裝置,其特征在于,所述服務(wù)器獲取單元,還包括第一查詢模塊,用于根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,查詢文件服務(wù)器中是否存在所述請(qǐng)求文件;第一記錄模塊,用于記錄所述請(qǐng)求文件的大小;第二查詢模塊,用于當(dāng)文件服務(wù)器中存在所述請(qǐng)求文件時(shí),查詢所述請(qǐng)求文件是否已在下載服務(wù)器的緩存中;第一選擇模塊,用于當(dāng)所述請(qǐng)求文件已在下載服務(wù)器的緩存時(shí),獲取緩存有所述請(qǐng)求文件的下載服務(wù)器,并從所述緩存有請(qǐng)求文件的下載服務(wù)器中選取一個(gè)客戶端連接數(shù)小于既定最大連接數(shù)且客戶端數(shù)量最少的下載服務(wù)器;第二選擇模塊,用于當(dāng)所述請(qǐng)求文件不在下載服務(wù)器的緩存中,或是緩存有請(qǐng)求文件的下載服務(wù)器中的客戶端連接數(shù)均大于等于既定最大連接數(shù)時(shí),從下載控制服務(wù)器所管轄的所有下載服務(wù)器中,選取一個(gè)處于在線狀態(tài)的下載服務(wù)器。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述第二選擇模塊,還包括第一選擇子模塊,用于從下載控制服務(wù)器的下載服務(wù)器列表中選擇處于在線狀態(tài)并且客戶端連接數(shù)小于既定最大連接數(shù)的下載服務(wù)器的集合;第二選擇子模塊,用于在所述下載服務(wù)器的集合中,選擇可用內(nèi)存容量大于請(qǐng)求文件大小的一組下載服務(wù)器;第三選擇子模塊,用于在所述選擇出的一組下載服務(wù)器中,選擇出連接數(shù)最少的一個(gè)下載服務(wù)器;第一下載設(shè)置子模塊,用于將所述選擇出的一個(gè)下載服務(wù)器的下載方式設(shè)置為緩存下載,并將所述下載方式設(shè)置為緩存下載的文件的標(biāo)識(shí)和文件大小以及選擇出的連接數(shù)最少的下載服務(wù)器的地址發(fā)送給已緩存文件列表。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,將所述下載方式設(shè)置為緩存下載的文件的標(biāo)識(shí)和文件大小以及選擇出的連接數(shù)最少的下載服務(wù)器的地址發(fā)送給已緩存文件列表后,還包括已緩存文件查找單元,用于根據(jù)所述文件的標(biāo)識(shí)和所述下載服務(wù)器的地址在已緩存文件列表中查找是否存在所述文件的記錄;已緩存文件更新單元,用于在查找到所述文件的記錄時(shí),將所述文件的被請(qǐng)求次數(shù)加 1,將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間;新緩存消息發(fā)送單元,用于在未查找到所述文件的記錄時(shí),向所述下載服務(wù)器的地址發(fā)送帶有所述文件的標(biāo)識(shí)和文件大小的增加緩存文件消息;第一文件添加單元,用于在發(fā)送所述增加緩存文件消息后,在已緩存文件列表中添加所述文件的記錄,包括記錄文件大小、記錄所述下載服務(wù)器的地址、將所述文件的被請(qǐng)求次數(shù)設(shè)為1、將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間。
16.根據(jù)權(quán)利要求14所述的裝置,其特征在于,如果在所述下載服務(wù)器的集合中,不存在可用內(nèi)存容量大于請(qǐng)求文件大小的下載服務(wù)器,則還包括第四選擇子模塊,用于在所述下載服務(wù)器集合中選擇出連接數(shù)最少的一個(gè)下載服務(wù)器;第二下載設(shè)置子模塊,用于將所述選擇出的一個(gè)下載服務(wù)器的下載方式設(shè)置為普通下載,并將所述下載方式設(shè)置為普通下載的文件的標(biāo)識(shí)和文件大小發(fā)送給未緩存文件列表。
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,將所述下載方式設(shè)置為普通下載的文件的標(biāo)識(shí)和文件大小發(fā)送給未緩存文件列表后,還包括未緩存文件查找單元,用于根據(jù)所述文件的標(biāo)識(shí)在未緩存文件列表中查找是否存在所述文件的記錄;未緩存文件更新單元,用于在查找到所述文件的記錄時(shí),將所述文件的被請(qǐng)求次數(shù)加 1,將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間;第二文件添加單元,用于在未查找到所述文件的記錄時(shí),則在未緩存文件列表中添加所述文件的記錄,包括記錄文件大小、將所述文件的被請(qǐng)求次數(shù)設(shè)為1、將最后一次請(qǐng)求時(shí)間更新為當(dāng)前時(shí)間。
18.根據(jù)權(quán)利要求14或16所述的裝置,其特征在于,還包括文件刪除控制單元,用于定期檢查已緩存文件列表和未緩存文件列表,將近期沒有下載請(qǐng)求的文件的記錄從已緩存文件列表和未緩存文件列表中刪除;緩存下載分配單元,用于對(duì)進(jìn)行普通下載的文件分配可提供緩存下載的下載服務(wù)器。
19.根據(jù)權(quán)利要求11或12所述的裝置,其特征在于,還包括服務(wù)器注冊(cè)單元,用于接收新的下載服務(wù)器的注冊(cè),將所述新的下載服務(wù)器的信息記錄到下載服務(wù)器列表;狀態(tài)接收控制單元,用于接收所有下載服務(wù)器的狀態(tài)信息,所述下載服務(wù)器的狀態(tài)信息包括所述下載服務(wù)器的地址、連接數(shù)、可用內(nèi)存;所述下載控制服務(wù)器接收所述狀態(tài)信息后,更新下載服務(wù)器列表中記錄的所述下載服務(wù)器的連接數(shù)、可用內(nèi)存并在接收到處于離線狀態(tài)的下載服務(wù)器的狀態(tài)信息時(shí),將所述處于離線狀態(tài)的下載服務(wù)器設(shè)置為在線狀態(tài);狀態(tài)周期檢查單元,周期性檢查所有下載服務(wù)器,將狀態(tài)異常的下載服務(wù)器設(shè)置為離線狀態(tài)。
20.一種支持大并發(fā)量文件下載的系統(tǒng),其特征在于,包括客戶端,用于向下載控制服務(wù)器發(fā)送下載服務(wù)器查詢請(qǐng)求消息,所述下載服務(wù)器查詢請(qǐng)求消息中攜帶需下載文件的標(biāo)識(shí);下載控制服務(wù)器,用于接收客戶端的下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和下載服務(wù)器的負(fù)載情況,選擇一個(gè)下載服務(wù)器;將所述選擇的一個(gè)下載服務(wù)器的地址發(fā)送給所述客戶端,指示客戶端從所述地址對(duì)應(yīng)的下載服務(wù)器中下載文件;所述客戶端還用于在接收到下載控制服務(wù)器返回的下載服務(wù)器地址后,向所述返回的下載服務(wù)器地址發(fā)起文件下載請(qǐng)求消息。
21.根據(jù)權(quán)利要求20所述的方法,其特征在于,所述下載控制服務(wù)器中還維護(hù)了一個(gè)下載服務(wù)器列表,一個(gè)已緩存文件列表,一個(gè)未緩存文件列表;所述下載服務(wù)器列表中的信息包括所有下載服務(wù)器的地址及連接狀態(tài),每臺(tái)下載服務(wù)器的當(dāng)前連接數(shù)、可用內(nèi)存、時(shí)間記錄;所述已緩存文件列表中的信息包括已存儲(chǔ)到某下載服務(wù)器的內(nèi)存中并可進(jìn)行緩存下載的文件的標(biāo)識(shí)及文件大小,每個(gè)文件的被請(qǐng)求次數(shù)、最后一次請(qǐng)求時(shí)間及緩存文件的下載服務(wù)器地址;所述未緩存文件列表中的信息包括未存儲(chǔ)到下載服務(wù)器的內(nèi)存中并可進(jìn)行普通下載的文件的標(biāo)識(shí)及文件大小,每個(gè)文件的被請(qǐng)求次數(shù)、最后一次請(qǐng)求時(shí)間。
22.根據(jù)權(quán)利要求20所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括下載服務(wù)器,用于在接收所述客戶端的文件下載請(qǐng)求消息后,向所述客戶端提供文件的緩存下載或普通下載。
23.根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于,所述下載服務(wù)器還用于將自身的狀態(tài)信息發(fā)送給所述下載控制服務(wù)器;所述下載服務(wù)器的狀態(tài)信息包括所述下載服務(wù)器的地址、連接數(shù)、可用內(nèi)存;所述下載控制服務(wù)器接收所述狀態(tài)信息后,更新下載服務(wù)器列表中記錄的所述下載服務(wù)器的連接數(shù)、可用內(nèi)存,如果所述發(fā)送狀態(tài)信息的下載服務(wù)器處于離線狀態(tài),則所述下載控制服務(wù)器將下載服務(wù)器列表中記錄的所述下載服務(wù)器的狀態(tài)更改為在線狀態(tài)。
24.根據(jù)權(quán)利要求22所述的系統(tǒng),其特征在于,所述下載服務(wù)器根據(jù)所述下載控制服務(wù)器發(fā)送的增加緩存文件消息和刪除緩存文件消息,在內(nèi)存中增加緩存文件或刪除緩存文件。
25.根據(jù)權(quán)利要求20所述的系統(tǒng),其特征在于,所述下載控制服務(wù)器還用于 接收新加入的下載服務(wù)器的注冊(cè);所述新加入的下載服務(wù)器向所述下載控制服務(wù)器發(fā)出注冊(cè)消息,所述注冊(cè)消息包含所述新加入的下載服務(wù)器的地址、可用內(nèi)存;所述下載控制服務(wù)器接收所述注冊(cè)消息并將所述新加入的下載服務(wù)器加入下載服務(wù)器列表中。
26.根據(jù)權(quán)利要求20所述的系統(tǒng),其特征在于,所述下載控制服務(wù)器為某請(qǐng)求文件獲取到一個(gè)新的下載服務(wù)器時(shí),還對(duì)下載方式進(jìn)行選擇;若下載方式選擇為緩存下載,則所述下載控制服務(wù)器向所述新的下載服務(wù)器發(fā)送增加緩存文件消息;所述下載服務(wù)器接收所述增加緩存文件消息后,為所述某請(qǐng)求文件分配緩存空間。
全文摘要
本發(fā)明公開了一種支持大并發(fā)量文件下載的方法、裝置及系統(tǒng),涉及計(jì)算機(jī)通信領(lǐng)域,降低大并發(fā)量下載對(duì)服務(wù)器造成的下載壓力。一種支持大并發(fā)量文件下載的方法,包括下載控制服務(wù)器接收客戶端的下載服務(wù)器查詢請(qǐng)求消息;根據(jù)所述下載服務(wù)器查詢請(qǐng)求消息,并依據(jù)緩存文件分布和下載服務(wù)器的負(fù)載情況,獲取一個(gè)下載服務(wù)器;將所述獲取的一個(gè)下載服務(wù)器的地址發(fā)送給所述客戶端,指示客戶端從所述地址對(duì)應(yīng)的下載服務(wù)器中下載文件。本發(fā)明實(shí)施例用于提供文件下載的計(jì)算機(jī)網(wǎng)絡(luò),緩解了大并發(fā)量文件下載時(shí)服務(wù)器的處理瓶頸問題。
文檔編號(hào)H04L29/06GK102164160SQ20101062481
公開日2011年8月24日 申請(qǐng)日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者張帥, 徐延霞, 湯立輝, 譚巍, 馬宇堅(jiān) 申請(qǐng)人:青島海信傳媒網(wǎng)絡(luò)技術(shù)有限公司