客戶端、服務(wù)端的文件下載控制方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)通信技術(shù)領(lǐng)域,尤其涉及一種客戶端的文件下載控制方法及裝置、服務(wù)端的文件下載控制方法及裝置和文件下載控制系統(tǒng)。
【背景技術(shù)】
[0002]目前很多手機(jī)APP、桌面客戶端、連接到公網(wǎng)的應(yīng)用服務(wù)器都具備在線升級這一功能。在線升級當(dāng)然離不開在線下載,當(dāng)大量客戶端請求下載服務(wù)器的升級包時(shí),必然會(huì)給服務(wù)器造成一定的壓力,影響其他業(yè)務(wù)功能的用戶體驗(yàn)。甚至更為嚴(yán)重會(huì)致使服務(wù)癱瘓,宕機(jī)。
[0003]現(xiàn)有的解決方案包括:
[0004]通過在服務(wù)端設(shè)置專有參數(shù),提供專有文件通道方式;例如Apache/Nginx/Lighttpd設(shè)置x-sendfi Ie功能實(shí)現(xiàn),這種方式在高并發(fā)大文件時(shí)很容易達(dá)到服務(wù)端的極限,保證不了下載功能的高可用性;
[0005]擴(kuò)大服務(wù)器帶寬、增強(qiáng)服務(wù)器硬件資源配置(CPU/內(nèi)存/高速硬盤等),這種方式依然受限于服務(wù)器的硬件性能極限;
[0006]通過服務(wù)器集群加負(fù)載均衡的方式,加上必要的動(dòng)態(tài)擴(kuò)展手段,這讓高并發(fā)大文件下載的正常運(yùn)轉(zhuǎn)理論上成為可能,但隨著服務(wù)器數(shù)量和集群控制體系的復(fù)雜化,實(shí)際上需要付出更加巨額的資金成本和維護(hù)成本。
【發(fā)明內(nèi)容】
[0007]針對上述技術(shù)問題,本發(fā)明公開了一種客戶端、服務(wù)端的文件下載控制方法、裝置及系統(tǒng),能夠從客戶端角度出發(fā),分散初始下載時(shí)間點(diǎn),從而避免大量的客戶端同時(shí)向服務(wù)端提交下載請求,從而對服務(wù)端的響應(yīng)能力有較高的要求;也能夠從服務(wù)端角度出發(fā),通過監(jiān)控下載量的方式,避免同時(shí)響應(yīng)大量的下載請求,也避免造成服務(wù)端癱瘓或者宕機(jī)等情況的發(fā)生。
[0008]本發(fā)明給出了一種客戶端的文件下載控制方法,包括:
[0009]基于預(yù)設(shè)方式為客戶端分配初始下載時(shí)間點(diǎn);
[0010]當(dāng)達(dá)到所述初始下載時(shí)間點(diǎn)則自動(dòng)向服務(wù)端提交下載請求;
[0011 ]接收服務(wù)端反饋的處置消息,若允許下載,則開始下載,否則等待下次重連時(shí)間點(diǎn)向服務(wù)端提交下載請求;
[0012]所述預(yù)設(shè)方式為將各客戶端的初始下載時(shí)間點(diǎn)分散到不同時(shí)間段的方法。
[0013]進(jìn)一步地,所述基于預(yù)設(shè)方式為客戶端分配初始下載時(shí)間點(diǎn)為:
[0014]基于hash散列方法為客戶端分配初始下載時(shí)間點(diǎn);或者,隨機(jī)為客戶端分配初始下載時(shí)間點(diǎn)。
[0015]更進(jìn)一步地,所述基于hash散列方法為客戶端分配初始下載時(shí)間點(diǎn)為:
[0016]將客戶端唯一標(biāo)識(shí)轉(zhuǎn)化為ASCII碼值,并將所述ASCII碼值累加計(jì)算和值;
[0017]基于下載請求對應(yīng)的文件大小和網(wǎng)絡(luò)情況得到下載完成所需的平均時(shí)間間隔;
[0018]基于服務(wù)端允許下載的時(shí)間段和平均時(shí)間間隔得到允許下載的窗口大?。?br>[0019]將所述和值對所述窗口大小取余后得到η;
[0020]計(jì)算所述平均時(shí)間間隔與η的乘積,所述乘積與初始時(shí)間點(diǎn)相加得到初始下載時(shí)間點(diǎn)。
[0021]進(jìn)一步地,所述下次重連時(shí)間點(diǎn)為:
[0022]基于所述預(yù)設(shè)方式重新為客戶端分配的初始下載時(shí)間點(diǎn);或者
[0023]基于預(yù)設(shè)時(shí)間間隔后得到的下次重連時(shí)間點(diǎn);或者
[0024]服務(wù)端反饋的允許重新提交下載請求的時(shí)間點(diǎn)。
[0025]本發(fā)明同時(shí)給出了一種客戶端的文件下載控制裝置,包括:
[0026]時(shí)間點(diǎn)分配模塊,用于基于預(yù)設(shè)方式為客戶端分配初始下載時(shí)間點(diǎn);
[0027]下載請求提交模塊,用于當(dāng)達(dá)到所述初始下載時(shí)間點(diǎn)則自動(dòng)向服務(wù)端提交下載請求;
[0028]消息響應(yīng)模塊,用于接收服務(wù)端反饋的處置消息,若允許下載,則開始下載,否則等待下次重連時(shí)間點(diǎn)向服務(wù)端提交下載請求;
[0029]所述預(yù)設(shè)方式為將各客戶端的初始下載時(shí)間點(diǎn)分散到不同時(shí)間段的方法。
[0030]進(jìn)一步地,所述時(shí)間點(diǎn)分配模塊,用于:
[0031 ]基于hash散列方法為客戶端分配初始下載時(shí)間點(diǎn);或者,隨機(jī)為客戶端分配初始下載時(shí)間點(diǎn)。
[0032]更進(jìn)一步地,所述時(shí)間點(diǎn)分配模塊,具體用于:
[0033]將客戶端唯一標(biāo)識(shí)轉(zhuǎn)化為ASCII碼值,并將所述ASCII碼值累加計(jì)算和值;
[0034]基于下載請求對應(yīng)的文件大小和網(wǎng)絡(luò)情況得到下載完成所需的平均時(shí)間間隔;
[0035]基于服務(wù)端允許下載的時(shí)間段和平均時(shí)間間隔得到允許下載的窗口大??;
[0036]將所述和值對所述窗口大小取余后得到η;
[0037]計(jì)算所述平均時(shí)間間隔與η的乘積,所述乘積與初始時(shí)間點(diǎn)相加得到初始下載時(shí)間點(diǎn)。
[0038]進(jìn)一步地,所述下次重連時(shí)間點(diǎn)為:
[0039]基于所述預(yù)設(shè)方式重新為客戶端分配的初始下載時(shí)間點(diǎn);或者
[0040]基于預(yù)設(shè)時(shí)間間隔后得到的下次重連時(shí)間點(diǎn);或者[0041 ]服務(wù)端反饋的允許重新提交下載請求的時(shí)間點(diǎn)。
[0042]本發(fā)明給出了一種服務(wù)端的文件下載控制方法,包括:
[0043]接收客戶端提交的下載請求,并查詢服務(wù)端當(dāng)前響應(yīng)的下載量;
[0044]基于下載量判斷是否響應(yīng)所述下載請求,并向客戶端反饋處置消息。
[0045]進(jìn)一步地,所述基于下載量判斷是否響應(yīng)所述下載請求,并向客戶端反饋處置消息為:
[0046]判斷所述下載量是否超過閾值,若是,則不響應(yīng)所述下載請求,并向客戶端反饋不允許下載的消息,否則響應(yīng)所述下載請求,并向客戶端反饋允許下載的消息。
[0047]更進(jìn)一步地,當(dāng)判定不響應(yīng)所述下載請求時(shí),還包括:向客戶端反饋重新提交下載請求的時(shí)間點(diǎn)。
[0048]上述方法中,所述重新提交下載請求的時(shí)間點(diǎn)為:基于服務(wù)端當(dāng)前響應(yīng)的下載請求對應(yīng)的文件大小、客戶端提交的下載請求對應(yīng)的文件大小、網(wǎng)絡(luò)情況及重連隊(duì)列情況,計(jì)算得到的重新提交下載請求的時(shí)間點(diǎn)。
[0049]進(jìn)一步地,當(dāng)判定響應(yīng)所述下載請求時(shí),還包括:將所述下載量的數(shù)值加I,當(dāng)所述下載請求響應(yīng)完成或者異常中斷,則將所述下載量的數(shù)值減I。
[0050]進(jìn)一步地,所述接收客戶端提交的下載請求后,還包括:查詢所述客戶端下載失敗的次數(shù),若超過失敗次數(shù)閾值,則不進(jìn)行基于下載量判斷是否響應(yīng)所述下載請求的操作,而優(yōu)先響應(yīng)該下載請求。
[0051]本發(fā)明同時(shí)給出了一種服務(wù)端的文件下載控制裝置,包括:
[0052]下載請求接收模塊,用于接收客戶端提交的下載請求,并查詢服務(wù)端當(dāng)前響應(yīng)的下載量;
[0053]請求判斷響應(yīng)模塊,用于基于下載量判斷是否響應(yīng)所述下載請求,并向客戶端反饋處置消息。
[0054]進(jìn)一步地,所述請求判斷響應(yīng)模塊,用于:
[0055]判斷所述下載量是否超過閾值,若是,則不響應(yīng)所述下載請求,并向客戶端反饋不允許下載的消息,否則響應(yīng)所述下載請求,并向客戶端反饋允許下載的消息。
[0056]更進(jìn)一步地,當(dāng)判定不響應(yīng)所述下載請求時(shí),還包括:向客戶端反饋重新提交下載請求的時(shí)間點(diǎn)。
[0057]上述裝置中,所述重新提交下載請求的時(shí)間點(diǎn)為:基于服務(wù)端當(dāng)前響應(yīng)的下載請求對應(yīng)的文件大小、客戶端提交的下載請求對應(yīng)的文件大小、網(wǎng)絡(luò)情況及重連隊(duì)列情況,計(jì)算得到的重新提交下載請求的時(shí)間點(diǎn)。
[00