分布式平臺(tái)的數(shù)據(jù)下載方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種分布式平臺(tái)的數(shù)據(jù)下載方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]在基于客戶端-服務(wù)器(Client-Server ;CS)模型的分布式平臺(tái)中,服務(wù)器與客戶端之間及服務(wù)器與各下載機(jī)之間,一般通過(guò)HTTP協(xié)議進(jìn)行通信。當(dāng)客戶端需要進(jìn)行數(shù)據(jù)下載時(shí),向服務(wù)器發(fā)送下載請(qǐng)求,服務(wù)器隨機(jī)選擇下載機(jī)執(zhí)行下載任務(wù),選擇的下載機(jī)進(jìn)行數(shù)據(jù)下載并將下載數(shù)據(jù)返回給服務(wù)器,進(jìn)而由服務(wù)器將下載數(shù)據(jù)發(fā)送給發(fā)送下載請(qǐng)求的客戶端。
[0003]由于在分布式平臺(tái)中,各個(gè)下載機(jī)的計(jì)算能力不同,當(dāng)發(fā)送下載請(qǐng)求的客戶端較多時(shí),現(xiàn)有的數(shù)據(jù)下載的方法不能保證服務(wù)器為各個(gè)下載機(jī)合理地分配下載任務(wù),容易出現(xiàn)數(shù)據(jù)下載延遲及由于超時(shí)下載失敗的情況,使得數(shù)據(jù)下載的效率較低。
【發(fā)明內(nèi)容】
[0004]為提高分布式平臺(tái)中數(shù)據(jù)下載的效率,本發(fā)明提供一種分布式平臺(tái)的數(shù)據(jù)下載方法、裝置及系統(tǒng)。
[0005]本發(fā)明提供一種分布式平臺(tái)的數(shù)據(jù)下載方法,包括:
[0006]接收第一客戶端發(fā)送的下載請(qǐng)求;
[0007]根據(jù)各下載機(jī)的工作狀態(tài)信息,選擇空閑的下載機(jī)發(fā)送下載指令;
[0008]接收所述選擇的下載機(jī)返回的第二響應(yīng)信息,并從所述第二響應(yīng)信息中解析出下載數(shù)據(jù);
[0009]根據(jù)所述下載請(qǐng)求中的回送地址信息,將所述下載數(shù)據(jù)發(fā)送給所述回送地址信息對(duì)應(yīng)的客戶端。
[0010]本發(fā)明提供又一種分布式平臺(tái)的數(shù)據(jù)下載方法,包括:
[0011]下載機(jī)接收服務(wù)器發(fā)送的下載指令,所述下載機(jī)為所述服務(wù)器收到第一客戶端發(fā)送的下載請(qǐng)求之后,根據(jù)各下載機(jī)的工作狀態(tài)信息選擇的空閑的下載機(jī),所述下載請(qǐng)求中包括回送地址信息;
[0012]所述下載機(jī)根據(jù)所述下載指令進(jìn)行下載,得到下載數(shù)據(jù);
[0013]所述下載機(jī)向所述服務(wù)器發(fā)送第二響應(yīng)信息,所述第二響應(yīng)信息中包括所述下載數(shù)據(jù),以使所述服務(wù)器將所述下載數(shù)據(jù)發(fā)送給所述回送地址信息對(duì)應(yīng)的客戶端。
[0014]本發(fā)明提供一種分布式平臺(tái)的數(shù)據(jù)下載裝置,包括:
[0015]接收模塊,用于接收第一客戶端發(fā)送的下載請(qǐng)求;
[0016]選擇模塊,用于根據(jù)各下載機(jī)的工作狀態(tài)信息,選擇空閑的下載機(jī)發(fā)送下載指令;
[0017]解析模塊,用于接收所述選擇的下載機(jī)返回的第二響應(yīng)信息,并從所述第二響應(yīng)信息中解析出下載數(shù)據(jù);
[0018]發(fā)送模塊,用于根據(jù)所述下載請(qǐng)求中的回送地址信息,將所述下載數(shù)據(jù)發(fā)送給所述回送地址信息對(duì)應(yīng)的客戶端。
[0019]本發(fā)明提供又一種分布式平臺(tái)的數(shù)據(jù)下載裝置,包括:
[0020]接收模塊,用于接收服務(wù)器發(fā)送的下載指令,所述接收模塊為所述服務(wù)器收到第一客戶端發(fā)送的下載請(qǐng)求之后,根據(jù)各下載機(jī)的工作狀態(tài)信息選擇的空閑的下載機(jī)的接收模塊,所述下載請(qǐng)求中包括回送地址信息;
[0021]下載模塊,用于根據(jù)所述下載指令進(jìn)行下載,得到下載數(shù)據(jù);
[0022]發(fā)送模塊,用于向所述服務(wù)器發(fā)送第二響應(yīng)信息,所述第二響應(yīng)信息中包括所述下載數(shù)據(jù),以使所述服務(wù)器將所述下載數(shù)據(jù)發(fā)送給所述回送地址信息對(duì)應(yīng)的客戶端。
[0023]本發(fā)明還提供一種分布式平臺(tái)的數(shù)據(jù)下載系統(tǒng),包括上述本發(fā)明提供的一種分布式平臺(tái)的數(shù)據(jù)下載裝置及上述本發(fā)明提供的又一種分布式平臺(tái)的數(shù)據(jù)下載裝置。
[0024]本發(fā)明的技術(shù)方案中,服務(wù)器根據(jù)各下載機(jī)當(dāng)前的工作狀態(tài)信息,來(lái)分配下載任務(wù),實(shí)現(xiàn)了合理地為各下載機(jī)分配下載任務(wù),減少了由于某一下載機(jī)負(fù)擔(dān)較重、下載延遲或超時(shí)的情況,提高了下載效率。
【附圖說(shuō)明】
[0025]圖1為本發(fā)明分布式平臺(tái)的數(shù)據(jù)下載方法實(shí)施例一的流程圖;
[0026]圖2為本發(fā)明分布式平臺(tái)的數(shù)據(jù)下載方法實(shí)施例二的流程圖;
[0027]圖3為本發(fā)明分布式平臺(tái)的數(shù)據(jù)下載方法實(shí)施例三的流程圖;
[0028]圖4為本發(fā)明分布式平臺(tái)的數(shù)據(jù)下載裝置實(shí)施例一的結(jié)構(gòu)示意圖;
[0029]圖5為本發(fā)明分布式平臺(tái)的數(shù)據(jù)下載裝置實(shí)施例二的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0030]圖1為本發(fā)明分布式平臺(tái)的數(shù)據(jù)下載方法實(shí)施例一的流程圖,本實(shí)施例的方法可以由服務(wù)器執(zhí)行,參見圖1,本實(shí)施例的方法包括:
[0031]步驟101:接收第一客戶端發(fā)送的下載請(qǐng)求;
[0032]本實(shí)施例中,服務(wù)器與客戶端之間、及服務(wù)器與下載機(jī)之間發(fā)生的請(qǐng)求或響應(yīng)消息,均包括協(xié)議頭及協(xié)議內(nèi)容兩部分,協(xié)議頭及協(xié)議內(nèi)容之后均有結(jié)束符,結(jié)束符用換行(OxOD)回車(OxOA)表示,協(xié)議內(nèi)容部分包括多個(gè)關(guān)鍵字及關(guān)鍵字對(duì)應(yīng)的值,關(guān)鍵字與值之間使用冒號(hào)(0x3A)作為間隔符,關(guān)鍵字與值之后為結(jié)束符,關(guān)鍵字對(duì)應(yīng)的值是參數(shù)時(shí),參數(shù)名與參數(shù)值之間使用等號(hào)(0x3D)作為間隔符,多個(gè)參數(shù)之間使用分號(hào)(0x3B)作為間隔符間隔符、結(jié)束符左右兩側(cè)為空白符(空格),不作為關(guān)鍵字內(nèi)容。其中間隔符、結(jié)束符、空白符均為標(biāo)準(zhǔn)ASCII碼。
[0033]其中,各個(gè)消息的協(xié)議頭包括協(xié)議類型、協(xié)議內(nèi)容長(zhǎng)度值,所述下載請(qǐng)求的協(xié)議頭還可以包括協(xié)議版本信息和/或用戶注冊(cè)碼,優(yōu)先地,本實(shí)施例中下載請(qǐng)求的協(xié)議頭包括協(xié)議類型(0203 )、協(xié)議內(nèi)容長(zhǎng)度值、協(xié)議版本信息及用戶注冊(cè)碼四部分內(nèi)容,其中協(xié)議版本信息、用戶注冊(cè)碼、協(xié)議內(nèi)容長(zhǎng)度值各占用8個(gè)字節(jié),協(xié)議類型占用4個(gè)字節(jié)。相應(yīng)地,為提高通信的安全性,在步驟101之后,還包括:
[0034]對(duì)所述下載請(qǐng)求中的協(xié)議頭中的信息進(jìn)行認(rèn)證,得到認(rèn)證結(jié)果;
[0035]向所述第一客戶端返回包括所述認(rèn)證結(jié)果的第三響應(yīng)信息;
[0036]本實(shí)施例中,若認(rèn)證結(jié)果為認(rèn)證通過(guò)時(shí),繼續(xù)執(zhí)行步驟102,若認(rèn)證結(jié)果為認(rèn)證失敗則結(jié)束操作。
[0037]其中,上述對(duì)所述下載請(qǐng)求中的協(xié)議頭中的信息進(jìn)行認(rèn)證可以包括以下至少一項(xiàng):驗(yàn)證協(xié)議版本信息是否與預(yù)設(shè)的版本信息一致,驗(yàn)證用戶注冊(cè)碼是否合法、驗(yàn)證協(xié)議內(nèi)容部分的長(zhǎng)度是否與協(xié)議頭中協(xié)議內(nèi)容長(zhǎng)度值相符;若驗(yàn)證結(jié)果均為是,則認(rèn)證通過(guò),則用“O”表示所述認(rèn)證結(jié)果,若有一項(xiàng)驗(yàn)證結(jié)果為否,則認(rèn)證失敗,用“I”表示所述認(rèn)證結(jié)果??蛇x地,為防止惡意請(qǐng)求增加系統(tǒng)繁忙度,本實(shí)施例中可以只在協(xié)議版本號(hào)及注冊(cè)碼均驗(yàn)證合法后才向第一客戶端返回第三響應(yīng)。
[0038]進(jìn)一步地,為防止服務(wù)器負(fù)擔(dān)超重、保證服務(wù)器能及時(shí)有效地處理客戶端的下載請(qǐng)求,所述第三響應(yīng)信息中還包括服務(wù)器繁忙度信息,以使所述第一客戶端根據(jù)所述服務(wù)器繁忙度信息確定下次發(fā)送下載請(qǐng)求的時(shí)間。所述服務(wù)器繁忙度信息由服務(wù)器根據(jù)自身最大計(jì)算能力及當(dāng)前計(jì)算量計(jì)算得到,當(dāng)服務(wù)器較繁忙時(shí),客戶端可以延遲下次發(fā)送下載請(qǐng)求以緩解服務(wù)器的壓力。
[0039]步驟102:根據(jù)各下載機(jī)的工作狀態(tài)信息,選擇空閑的下載機(jī)發(fā)送下載指令;
[0040]本實(shí)施例中,所述下載指令的協(xié)議頭中的協(xié)議類型為0303。
[0041]優(yōu)先地,在本實(shí)