一種數(shù)據(jù)下載方法及設(shè)備的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種數(shù)據(jù)下載方法及設(shè)備。該方法為:客戶端數(shù)據(jù)處理設(shè)備從M個(gè)服務(wù)器中確定處于正常狀態(tài)的N個(gè)服務(wù)器,其中,M為大于等于1的整數(shù),N為小于等于M的整數(shù);所述客戶端數(shù)據(jù)處理設(shè)備獲得客戶端發(fā)送的用于獲得第一數(shù)據(jù)的數(shù)據(jù)請(qǐng)求;基于所述數(shù)據(jù)請(qǐng)求,所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定出第一服務(wù)器;所述客戶端數(shù)據(jù)處理設(shè)備從所述第一服務(wù)器獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)發(fā)送至所述客戶端,從而提高客戶端數(shù)據(jù)處理設(shè)備的請(qǐng)求處理效率。
【專利說(shuō)明】
一種數(shù)據(jù)下載方法及設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明實(shí)施例涉及數(shù)字處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)下載方法及設(shè)備。
【背景技術(shù)】
[0002]Nginx(Engine x)是一款輕量級(jí)的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,其具有高穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而被廣泛應(yīng)用到大型的入口網(wǎng)站及搜索引擎中,以使各個(gè)客戶端能夠通過(guò)Nginx從相應(yīng)的服務(wù)器中獲取所需數(shù)據(jù)。
[0003]在現(xiàn)有技術(shù)中,請(qǐng)參考圖1,為Nginx的一種架構(gòu)示意圖,以客戶端通過(guò)Nginx獲取該用戶的設(shè)備運(yùn)行狀態(tài)信息,如獲取健康表為例,服務(wù)器A、服務(wù)器B及服務(wù)器C都可以為客戶端提供健康表,且,三個(gè)服務(wù)器中存儲(chǔ)的健康表相同。當(dāng)Nginx接收到客戶端發(fā)送的健康表獲取請(qǐng)求后,則根據(jù)一預(yù)設(shè)規(guī)則,如隨機(jī)或者按照固定的選擇順序,從三個(gè)服務(wù)器中確定從服務(wù)器A中獲取用戶的健康表,然后Nginx便向服務(wù)器A發(fā)送指令。若服務(wù)器A發(fā)生故障,則無(wú)法獲取,此時(shí),Nginx需要等待1s后,從服務(wù)器B或者服務(wù)器C中獲取用戶的健康表,最后將健康表返回客戶端。
[0004]可見(jiàn),在現(xiàn)有技術(shù)中,當(dāng)與Nginx通信的服務(wù)器發(fā)生故障時(shí),Nginx將被迫等待一預(yù)設(shè)時(shí)長(zhǎng),如10s,從而造成Nginx的請(qǐng)求處理效率低下。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種數(shù)據(jù)下載方法及設(shè)備,用以解決現(xiàn)有技術(shù)中Nginx在服務(wù)器發(fā)生故障時(shí)存在的請(qǐng)求處理效率低下的缺陷,實(shí)現(xiàn)提高客戶端數(shù)據(jù)處理設(shè)備的請(qǐng)求處理效率。
[0006]本發(fā)明實(shí)施例提供一種數(shù)據(jù)下載方法,包括:
[0007]客戶端數(shù)據(jù)處理設(shè)備從M個(gè)服務(wù)器中確定處于正常狀態(tài)的N個(gè)服務(wù)器,其中,M為大于等于I的整數(shù),N為小于等于M的整數(shù);
[0008]所述客戶端數(shù)據(jù)處理設(shè)備獲得客戶端發(fā)送的用于獲得第一數(shù)據(jù)的數(shù)據(jù)請(qǐng)求;
[0009]基于所述數(shù)據(jù)請(qǐng)求,所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定出第一服務(wù)器;
[0010]所述客戶端數(shù)據(jù)處理設(shè)備從所述第一服務(wù)器獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)發(fā)送至所述客戶端。
[0011]本發(fā)明實(shí)施例提供一種數(shù)據(jù)下載設(shè)備,包括:
[0012]狀態(tài)確定模塊,用于從M個(gè)服務(wù)器中確定處于正常狀態(tài)的N個(gè)服務(wù)器,其中,M為大于等于I的整數(shù),N為小于等于M的整數(shù);
[0013]接收模塊,用于獲得客戶端發(fā)送的用于獲得第一數(shù)據(jù)的數(shù)據(jù)請(qǐng)求;
[0014]服務(wù)器確定模塊,用于基于所述數(shù)據(jù)請(qǐng)求,從所述N個(gè)服務(wù)器中確定出第一服務(wù)器;
[0015]數(shù)據(jù)獲取模塊,用于從所述第一服務(wù)器獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)發(fā)送至所述客戶端。
[0016]本發(fā)明實(shí)施例提供的數(shù)據(jù)下載方法及設(shè)備,客戶端數(shù)據(jù)處理設(shè)備,如Nginx設(shè)備,會(huì)實(shí)時(shí)檢測(cè)與之通信的各個(gè)服務(wù)器的工作狀態(tài),從而確定出處于正常狀態(tài)的服務(wù)器,從而,當(dāng)客戶端數(shù)據(jù)處理設(shè)備接收到由客戶端發(fā)送的數(shù)據(jù)請(qǐng)求時(shí),便會(huì)自動(dòng)從處于正常狀態(tài)的服務(wù)器中獲取客戶端所需的數(shù)據(jù),通過(guò)實(shí)時(shí)檢測(cè)各個(gè)服務(wù)器的當(dāng)前狀態(tài),避免了當(dāng)提供數(shù)據(jù)的服務(wù)器發(fā)生故障時(shí),客戶端數(shù)據(jù)處理設(shè)備由于需要等待而造成的請(qǐng)求處理效率低下,實(shí)現(xiàn)了提高客戶端數(shù)據(jù)處理設(shè)備的請(qǐng)求處理效率。
【附圖說(shuō)明】
[0017]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1為現(xiàn)有技術(shù)中Nginx的架構(gòu)示意圖;
[0019]圖2為本發(fā)明數(shù)據(jù)下載方法實(shí)施例流程圖;
[0020]圖3為本發(fā)明數(shù)據(jù)下載方法實(shí)施例中步驟101的具體實(shí)現(xiàn)方式流程圖;
[0021 ]圖4A為本發(fā)明數(shù)據(jù)下載方法實(shí)施例第一種結(jié)構(gòu)示意圖;
[0022]圖4B為本發(fā)明數(shù)據(jù)下載方法實(shí)施例第二種結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0024]實(shí)施例一
[0025]請(qǐng)參考圖2,為本發(fā)明實(shí)施例中提供的一種數(shù)據(jù)下載方法的流程圖,所述方法包括:
[0026]101:客戶端數(shù)據(jù)處理設(shè)備從M個(gè)服務(wù)器中確定處于正常狀態(tài)的N個(gè)服務(wù)器,其中,M為大于等于I的整數(shù),N為小于等于M的整數(shù);
[0027]102:所述客戶端數(shù)據(jù)處理設(shè)備獲得客戶端發(fā)送的用于獲得第一數(shù)據(jù)的數(shù)據(jù)請(qǐng)求;
[0028]103:基于所述數(shù)據(jù)請(qǐng)求,所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定出第一服務(wù)器;
[0029]104:所述客戶端數(shù)據(jù)處理設(shè)備從所述第一服務(wù)器獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)發(fā)送至所述客戶端。
[0030]在具體實(shí)施過(guò)程中,所述客戶端數(shù)據(jù)處理設(shè)備具體可以是Nginx設(shè)備,或者其他能夠提供HTTP和反向代理服務(wù)器功能的設(shè)備,當(dāng)然,也可以是其他集成有Nginx設(shè)備功能的電子設(shè)備,在本發(fā)明實(shí)施例中不作限制。在本發(fā)明實(shí)施例中,將以所述客戶端數(shù)據(jù)處理設(shè)備為Nginx設(shè)備為例,來(lái)對(duì)本發(fā)明實(shí)施例中的數(shù)據(jù)下載方法進(jìn)行詳細(xì)的描述。[0031 ]以圖1所述的Nginx架構(gòu)為例,服務(wù)器A、服務(wù)器B及服務(wù)器C分別為三個(gè)web服務(wù)器,假設(shè)其對(duì)應(yīng)的服務(wù)器地址分別為:服務(wù)器A: 192.168.1.17;服務(wù)器B: 192.168.1.18;服務(wù)器C: 192.168.1.19。服務(wù)器A、服務(wù)器B及服務(wù)器C中存儲(chǔ)有客戶端的所有數(shù)據(jù),如,客戶端的各個(gè)應(yīng)用程序數(shù)據(jù),客戶端的運(yùn)行狀態(tài)數(shù)據(jù)等,從而,當(dāng)客戶端需要獲取某種數(shù)據(jù)時(shí),Nginx設(shè)備可以從三個(gè)服務(wù)器中的任意一個(gè)獲取即可。在本發(fā)明實(shí)施例中,以客戶端需要獲取的第一數(shù)據(jù)為健康表數(shù)據(jù)為例來(lái)進(jìn)行說(shuō)明。
[0032]在采用本發(fā)明實(shí)施例中的方法下載數(shù)據(jù)時(shí),首先執(zhí)行步驟101,即:客戶端數(shù)據(jù)處理設(shè)備從M個(gè)服務(wù)器中確定處于正常狀態(tài)的N個(gè)服務(wù)器,其中,M為大于等于I的整數(shù),N為小于等于M的整數(shù)。
[0033]在本發(fā)明實(shí)施例中,請(qǐng)參考圖3,步驟101的具體實(shí)現(xiàn)方式如下:
[0034]1011:所述客戶端數(shù)據(jù)處理設(shè)備向所述M個(gè)服務(wù)器中每個(gè)服務(wù)器發(fā)送驗(yàn)證請(qǐng)求;
[0035]1012:所述客戶端數(shù)據(jù)處理設(shè)備接收由所述M個(gè)服務(wù)器發(fā)送的M個(gè)響應(yīng)信息;
[0036]1013:基于所述M個(gè)響應(yīng)信息,所述客戶端數(shù)據(jù)處理設(shè)備從所述M個(gè)服務(wù)器中確定出處于正常狀態(tài)的N個(gè)服務(wù)器。
[0037]在具體實(shí)施過(guò)程中,沿用上述例子,Nginx設(shè)備需要實(shí)時(shí)檢測(cè)服務(wù)器A、服務(wù)器B及服務(wù)器C的工作狀態(tài),判斷是否有服務(wù)器發(fā)生故障,從而Nginx設(shè)備需要分別向三個(gè)服務(wù)器發(fā)送驗(yàn)證請(qǐng)求。所述驗(yàn)證請(qǐng)求具體可以是http請(qǐng)求,當(dāng)然,也可以是其他類型的請(qǐng)求,在本發(fā)明實(shí)施例中不作限制。
[0038]以Nginx設(shè)備向三個(gè)服務(wù)器發(fā)送http請(qǐng)求為例,Nginx可以采用廣播方式發(fā)送,也可以根據(jù)各個(gè)服務(wù)器的地址,分別向三個(gè)服務(wù)器發(fā)送http請(qǐng)求。為了節(jié)省Nginx設(shè)備的能耗,可以預(yù)先設(shè)定一預(yù)設(shè)間隔,如1s或者20s等,從而Nginx設(shè)備可以以所述預(yù)設(shè)間隔向三個(gè)服務(wù)器發(fā)送驗(yàn)證請(qǐng)求,這樣,既能保證實(shí)時(shí)獲取各個(gè)服務(wù)器的工作狀態(tài),也能最大程度節(jié)省Nginx設(shè)備的能耗,當(dāng)然,所述預(yù)設(shè)間隔時(shí)長(zhǎng)可以根據(jù)實(shí)際使用情況進(jìn)行確定,本領(lǐng)域技術(shù)人員也可以采用其他的方式實(shí)時(shí)獲取各個(gè)服務(wù)器的工作狀態(tài)。
[0039]當(dāng)三個(gè)服務(wù)器分別接收到Nginx設(shè)備發(fā)送的http請(qǐng)求后,將會(huì)向Nginx設(shè)備反饋?lái)憫?yīng)信息,所述響應(yīng)信息中包含有對(duì)http請(qǐng)求的響應(yīng)碼。當(dāng)Nginx設(shè)備接收到三個(gè)服務(wù)器發(fā)送的響應(yīng)信息后,便提取所述響應(yīng)信息中的響應(yīng)碼,在Nginx設(shè)備中預(yù)先存儲(chǔ)判斷條件,如,當(dāng)響應(yīng)碼為200時(shí),則確定對(duì)應(yīng)的服務(wù)器處于正常狀態(tài),否則,確定服務(wù)器異?;虬l(fā)生故障。若Nginx設(shè)備獲取三個(gè)服務(wù)器發(fā)送的響應(yīng)信息中的響應(yīng)碼分別為:服務(wù)器A:201;服務(wù)器B:200;服務(wù)器C: 200,由于201 # 200,從而確定出服務(wù)器B及服務(wù)器C在當(dāng)前時(shí)刻內(nèi)處于正常狀態(tài),服務(wù)器A發(fā)生異常。
[0040]由于各個(gè)服務(wù)器的工作狀態(tài)可能會(huì)不斷發(fā)生變化,因此,Nginx設(shè)備需要根據(jù)下一時(shí)刻由各個(gè)服務(wù)器反饋的響應(yīng)碼實(shí)時(shí)更新對(duì)各個(gè)服務(wù)器工作狀態(tài)的判斷結(jié)果。
[0041 ]當(dāng)然,Nginx設(shè)備也可以對(duì)服務(wù)器的工作狀態(tài)只進(jìn)行一次判斷,如,當(dāng)服務(wù)器連接至IJNginx設(shè)備組成服務(wù)器系統(tǒng)中時(shí),便向服務(wù)器發(fā)送驗(yàn)證請(qǐng)求,當(dāng)獲取驗(yàn)證結(jié)果后,便將所述驗(yàn)證結(jié)果存儲(chǔ)在Nginx設(shè)備中,以表征該服務(wù)器的工作狀態(tài),在本發(fā)明實(shí)施例中不作限制。
[0042]在執(zhí)行完成步驟101之后,本發(fā)明實(shí)施例中的方法便執(zhí)行步驟102,即:所述客戶端數(shù)據(jù)處理設(shè)備獲得客戶端發(fā)送的用于獲得第一數(shù)據(jù)的數(shù)據(jù)請(qǐng)求。
[0043]在具體實(shí)施過(guò)程中,當(dāng)客戶端需要獲取其健康表數(shù)據(jù)時(shí),Nginx設(shè)備將會(huì)接收到由客戶端發(fā)送的URL(統(tǒng)一資源定位符)信息,所述URL信息中包含的信息指出客戶端需要的數(shù)據(jù)內(nèi)容的文件名,然后,Nginx設(shè)備提取URL信息中用于表征文件名的部分,確定出客戶端請(qǐng)求獲取的數(shù)據(jù)為健康表數(shù)據(jù)。
[0044]當(dāng)然,不可避免的存在如下情況:Nginx設(shè)備在確定各個(gè)服務(wù)器的工作狀態(tài)時(shí),接收到由客戶端發(fā)送的健康表數(shù)據(jù)請(qǐng)求信息,此時(shí),Nginx設(shè)備也需要先確定出各個(gè)服務(wù)器的工作狀態(tài)后,再對(duì)客戶端發(fā)送的健康表數(shù)據(jù)請(qǐng)求信息進(jìn)行處理,從而確保Nginx設(shè)備每次都能從處于正常狀態(tài)的服務(wù)器中獲取數(shù)據(jù),提高Nginx設(shè)備的命中率。
[0045]在執(zhí)行完成步驟102之后,本發(fā)明實(shí)施例中的方法便執(zhí)行步驟103,即:基于所述數(shù)據(jù)請(qǐng)求,所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定出第一服務(wù)器。
[0046]在具體實(shí)施過(guò)程中,步驟103的具體實(shí)現(xiàn)方式有多種,在本發(fā)明實(shí)施例中主要以如下兩種情況進(jìn)行說(shuō)明:
[0047]第一種方式,步驟103包括:
[0048]所述客戶端數(shù)據(jù)處理設(shè)備獲取所述數(shù)據(jù)請(qǐng)求的哈希值;
[0049]基于所述哈希值,所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定與所述哈希值對(duì)應(yīng)的第一服務(wù)器。
[0050]在具體實(shí)施過(guò)程中,沿用上述例子,當(dāng)Nginx設(shè)備確定出客戶端請(qǐng)求獲取的數(shù)據(jù)為健康表數(shù)據(jù)后,為了進(jìn)一步提高Nginx設(shè)備的訪問(wèn)命中率,Nginx設(shè)備便可以對(duì)客戶端發(fā)送的URL信息進(jìn)行哈希值計(jì)算的處理。哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式,是根據(jù)文件的內(nèi)容的數(shù)據(jù)通過(guò)邏輯運(yùn)算得到的樹(shù)脂,不同的文件得到的哈希值是不同的,即使文件內(nèi)容只有一個(gè)字母或者字符的不同,相應(yīng)的哈希值都不相同,因此,可以通過(guò)哈希值來(lái)驗(yàn)證多個(gè)消息是否相同。典型的哈希算法包括MD2、MD4、MD5和SHA-1等,在本發(fā)明實(shí)施例中不再贅述。
[0051 ]以客戶端發(fā)送的URL信息的哈希值為10為例,當(dāng)Nginx設(shè)備計(jì)算出客戶端發(fā)送的URL信息的哈希值之后,可以根據(jù)服務(wù)器的IP地址及URL信息的哈希值計(jì)算出一個(gè)分?jǐn)?shù),從而將分?jǐn)?shù)最高的服務(wù)器確定為獲取健康表數(shù)據(jù)的服務(wù)器。如,Nginx設(shè)備確定出處于正常狀態(tài)的服務(wù)器分別為服務(wù)器B和服務(wù)器C,從而根據(jù)服務(wù)器B的IP值和URL的哈希值計(jì)算出服務(wù)器B的分?jǐn)?shù)為100,服務(wù)器C的IP值與URL的哈希值計(jì)算出服務(wù)器B的分?jǐn)?shù)為80,進(jìn)而確定出服務(wù)器B為第一服務(wù)器。
[0052]相應(yīng)地,在所述客戶端數(shù)據(jù)處理設(shè)備從所述第一服務(wù)器獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)發(fā)送至所述客戶端之后,所述方法還包括:
[0053]所述客戶端數(shù)據(jù)處理設(shè)備建立所述哈希值與所述第一服務(wù)器的第一對(duì)應(yīng)關(guān)系,并將所述第一對(duì)應(yīng)關(guān)系存儲(chǔ)在所述客戶端數(shù)據(jù)處理設(shè)備中。
[0054]在具體實(shí)施過(guò)程中,沿用上述例子,當(dāng)Nginx設(shè)備確定出從服務(wù)器B中獲取健康表數(shù)據(jù)后,Nginx設(shè)備便建立客戶端的健康表請(qǐng)求信息的哈希值與服務(wù)器地址的對(duì)應(yīng)關(guān)系,如:哈希值10: 192.168.1.18,存儲(chǔ)在Nginx設(shè)備的存儲(chǔ)器中。這樣,當(dāng)Nginx設(shè)備下次檢測(cè)到獲取同樣哈希值的請(qǐng)求信息時(shí),便直接從服務(wù)器B中獲取,從而減少了 Nginx設(shè)備的計(jì)算量且提高了數(shù)據(jù)獲取的速率。
[0055]第二種方式,步驟103包括:
[0056]所述客戶端數(shù)據(jù)處理設(shè)備獲取一預(yù)設(shè)規(guī)則;
[0057]所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定滿足所述預(yù)設(shè)規(guī)則的第一服務(wù)器。
[0058]在具體實(shí)施過(guò)程中,沿用上述例子,當(dāng)Nginx設(shè)備確定出客戶端請(qǐng)求獲取的數(shù)據(jù)為健康表數(shù)據(jù)后,便根據(jù)存儲(chǔ)在Nginx設(shè)備中的預(yù)設(shè)規(guī)則確定獲取健康表數(shù)據(jù)的第一服務(wù)器。如,所述預(yù)設(shè)規(guī)則為隨機(jī)時(shí),則Nginx設(shè)備便從服務(wù)器B和服務(wù)器C中隨機(jī)選擇一個(gè)服務(wù)器作為第一服務(wù)器,如確定服務(wù)器B為第一服務(wù)器;或者,所述預(yù)設(shè)規(guī)則為:確定當(dāng)前時(shí)刻負(fù)載小的服務(wù)器為第一服務(wù)器。這時(shí),Nginx設(shè)備需要獲取服務(wù)器B和服務(wù)器C的當(dāng)前負(fù)載量,如服務(wù)器B的負(fù)載量為20,服務(wù)器C的負(fù)載量為30,則確定服務(wù)器B為第一服務(wù)器;或者,所述預(yù)設(shè)規(guī)則為:第一服務(wù)器的確定順序?yàn)锳>B>C。此時(shí),由于服務(wù)器A處于異常狀態(tài),則自動(dòng)根據(jù)預(yù)設(shè)設(shè)定的順序確定出服務(wù)器B為第一服務(wù)器。
[0059]當(dāng)然,本領(lǐng)域技術(shù)人員也可以根據(jù)實(shí)際使用需求設(shè)定其他的規(guī)則,在本發(fā)明實(shí)施例中不作限制。
[0060]在執(zhí)行完成步驟103之后,本發(fā)明實(shí)施例中的方法便執(zhí)行步驟104,即:所述客戶端數(shù)據(jù)處理設(shè)備從所述第一服務(wù)器獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)發(fā)送至所述客戶端。
[0061]在具體實(shí)施過(guò)程中,沿用上述例子,當(dāng)Nginx設(shè)備確定出服務(wù)器B為第一服務(wù)器后,便將客戶端發(fā)送的URL信息發(fā)送至服務(wù)器B,由服務(wù)器B獲取與客戶端對(duì)應(yīng)的健康表數(shù)據(jù),并將所述健康表數(shù)據(jù)反饋至Nginx設(shè)備,并通過(guò)Nginx設(shè)備將健康表數(shù)據(jù)發(fā)送至客戶端,完成了客戶端對(duì)健康表數(shù)據(jù)的下載過(guò)程。
[0062]實(shí)施例二
[0063]基于與本發(fā)明實(shí)施例一相同的發(fā)明構(gòu)思,請(qǐng)參考圖4A-圖4B,本發(fā)明實(shí)施例二提供一種數(shù)據(jù)下載設(shè)備,所述設(shè)備可以為Nginx設(shè)備,或者其他提供HTTP和反向代理服務(wù)器功能的設(shè)備,所述設(shè)備包括:狀態(tài)確定模塊10、接收模塊20、服務(wù)器確定模塊30以及數(shù)據(jù)獲取模塊40,而且本發(fā)明實(shí)施例二中的狀態(tài)確定模塊10、接收模塊20、服務(wù)器確定模塊30以及數(shù)據(jù)獲取模塊40可以通過(guò)硬件處理器(hardware processor)來(lái)實(shí)現(xiàn)相關(guān)功能單元,其中:
[0064]狀態(tài)確定模塊10,用于從M個(gè)服務(wù)器中確定處于正常狀態(tài)的N個(gè)服務(wù)器,其中,M為大于等于I的整數(shù),N為小于等于M的整數(shù);
[0065]接收模塊20,用于獲得客戶端發(fā)送的用于獲得第一數(shù)據(jù)的數(shù)據(jù)請(qǐng)求;
[0066]服務(wù)器確定模塊30,用于基于所述數(shù)據(jù)請(qǐng)求,從所述N個(gè)服務(wù)器中確定出第一服務(wù)器;
[0067]數(shù)據(jù)獲取模塊40,用于從所述第一服務(wù)器獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)發(fā)送至所述客戶端。
[0068]在本發(fā)明實(shí)施例二中,狀態(tài)確定模塊10具體用于:
[0069]向所述M個(gè)服務(wù)器中每個(gè)服務(wù)器發(fā)送驗(yàn)證請(qǐng)求;
[0070]接收由所述M個(gè)服務(wù)器發(fā)送的M個(gè)響應(yīng)信息;
[0071 ]基于所述M個(gè)響應(yīng)信息,從所述M個(gè)服務(wù)器中確定出處于正常狀態(tài)的N個(gè)服務(wù)器。
[0072]具體而言,若與所述數(shù)據(jù)下載設(shè)備通信的服務(wù)器分比為服務(wù)器A、服務(wù)器B及服務(wù)器C時(shí),所述數(shù)據(jù)下載設(shè)備則通過(guò)狀態(tài)確定模塊10,向上述三個(gè)服務(wù)器發(fā)送驗(yàn)證請(qǐng)求,如http請(qǐng)求等,然后根據(jù)各個(gè)服務(wù)器的反饋信息中的響應(yīng)碼,確定出服務(wù)器A、服務(wù)器B及服務(wù)器C中處于正常狀態(tài)的服務(wù)器,具體可參閱對(duì)應(yīng)的方法實(shí)施例中的具體說(shuō)明,這里不再贅述。
[0073]在本發(fā)明實(shí)施例二中,服務(wù)器確定模塊30具體以如下兩種主要實(shí)現(xiàn)方式進(jìn)行說(shuō)明:
[0074]第一種方式,服務(wù)器確定模塊30具體用于:
[0075]獲取所述數(shù)據(jù)請(qǐng)求的哈希值;
[0076]基于所述哈希值,從所述N個(gè)服務(wù)器中確定與所述哈希值對(duì)應(yīng)的第一服務(wù)器。
[0077]具體而言,當(dāng)所述數(shù)據(jù)下載設(shè)備接收到客戶端發(fā)送的URL信息后,所述數(shù)據(jù)下載設(shè)備便通過(guò)服務(wù)器確定模塊30計(jì)算URL信息的哈希值,并根據(jù)各個(gè)服務(wù)器的IP地址及URL信息的哈希值計(jì)算出每個(gè)服務(wù)器的分?jǐn)?shù),從而將分?jǐn)?shù)最高的服務(wù)器確定為獲取第一服務(wù)器。具體可參閱對(duì)應(yīng)的方法實(shí)施例中的具體說(shuō)明,這里不再贅述。
[0078]相應(yīng)地,如圖4A所示,當(dāng)服務(wù)器確定模塊30為上述實(shí)現(xiàn)方式時(shí),所述數(shù)據(jù)下載設(shè)備中還包括有:存儲(chǔ)模塊50,用于建立并存儲(chǔ)所述哈希值與所述第一服務(wù)器的第一對(duì)應(yīng)關(guān)系。
[0079]具體而言,存儲(chǔ)模塊50具體可以是所述數(shù)據(jù)下載設(shè)備中的存儲(chǔ)器,也可以是在所述數(shù)據(jù)下載設(shè)備中另外設(shè)置的新的存儲(chǔ)器,在本發(fā)明實(shí)施例中不作限制。當(dāng)服務(wù)器確定模塊30確定與當(dāng)前哈希值對(duì)應(yīng)的第一服務(wù)器之后,存儲(chǔ)模塊50便將當(dāng)前哈希值與第一服務(wù)器的IP地址的對(duì)應(yīng)關(guān)系存儲(chǔ)起來(lái),這樣,當(dāng)所述數(shù)據(jù)下載設(shè)備下次接收到具有相同哈希值的信息時(shí),便可以直接通過(guò)對(duì)應(yīng)的服務(wù)器獲取數(shù)據(jù),提高數(shù)據(jù)獲取速率。
[0080]第二種方式,服務(wù)器確定模塊30具體用于:
[0081]獲取一預(yù)設(shè)規(guī)則;
[0082]從所述N個(gè)服務(wù)器中確定滿足所述預(yù)設(shè)規(guī)則的第一服務(wù)器。
[0083]具體而言,當(dāng)所述數(shù)據(jù)下載設(shè)備接收到客戶端發(fā)送的URL信息后,所述數(shù)據(jù)下載設(shè)備便直接根據(jù)存儲(chǔ)器中預(yù)存的規(guī)則確定第一服務(wù)器,如隨機(jī)選擇,或者按照指定順序選擇等。
[0084]綜上所述,本發(fā)明實(shí)施例中,客戶端數(shù)據(jù)處理設(shè)備,如Nginx設(shè)備,會(huì)實(shí)時(shí)檢測(cè)與之通信的各個(gè)服務(wù)器的工作狀態(tài),從而確定出處于正常狀態(tài)的服務(wù)器,從而,當(dāng)客戶端數(shù)據(jù)處理設(shè)備接收到由客戶端發(fā)送的數(shù)據(jù)請(qǐng)求時(shí),便會(huì)自動(dòng)從處于正常狀態(tài)的服務(wù)器中獲取客戶端所需的數(shù)據(jù),通過(guò)實(shí)時(shí)檢測(cè)各個(gè)服務(wù)器的當(dāng)前狀態(tài),避免了當(dāng)提供數(shù)據(jù)的服務(wù)器發(fā)生故障時(shí),客戶端數(shù)據(jù)處理設(shè)備由于需要等待而造成的請(qǐng)求處理效率低下,實(shí)現(xiàn)了提高客戶端數(shù)據(jù)處理設(shè)備的請(qǐng)求處理效率。
[0085]以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
[0086]通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0087]最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)下載方法,其特征在于,包括: 客戶端數(shù)據(jù)處理設(shè)備從M個(gè)服務(wù)器中確定處于正常狀態(tài)的N個(gè)服務(wù)器,其中,M為大于等于I的整數(shù),N為小于等于M的整數(shù); 所述客戶端數(shù)據(jù)處理設(shè)備獲得客戶端發(fā)送的用于獲得第一數(shù)據(jù)的數(shù)據(jù)請(qǐng)求; 基于所述數(shù)據(jù)請(qǐng)求,所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定出第一服務(wù)器;所述客戶端數(shù)據(jù)處理設(shè)備從所述第一服務(wù)器獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)發(fā)送至所述客戶端。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述客戶端數(shù)據(jù)處理設(shè)備從M個(gè)服務(wù)器中確定處于正常狀態(tài)的N個(gè)服務(wù)器,包括: 所述客戶端數(shù)據(jù)處理設(shè)備向所述M個(gè)服務(wù)器中每個(gè)服務(wù)器發(fā)送驗(yàn)證請(qǐng)求; 所述客戶端數(shù)據(jù)處理設(shè)備接收由所述M個(gè)服務(wù)器發(fā)送的M個(gè)響應(yīng)信息; 基于所述M個(gè)響應(yīng)信息,所述客戶端數(shù)據(jù)處理設(shè)備從所述M個(gè)服務(wù)器中確定出處于正常狀態(tài)的N個(gè)服務(wù)器。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述數(shù)據(jù)請(qǐng)求,所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定出第一服務(wù)器,包括: 所述客戶端數(shù)據(jù)處理設(shè)備獲取所述數(shù)據(jù)請(qǐng)求的哈希值; 基于所述哈希值,所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定與所述哈希值對(duì)應(yīng)的第一服務(wù)器。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述數(shù)據(jù)請(qǐng)求,所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定出第一服務(wù)器,包括: 所述客戶端數(shù)據(jù)處理設(shè)備獲取一預(yù)設(shè)規(guī)則; 所述客戶端數(shù)據(jù)處理設(shè)備從所述N個(gè)服務(wù)器中確定滿足所述預(yù)設(shè)規(guī)則的第一服務(wù)器。5.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述客戶端數(shù)據(jù)處理設(shè)備從所述第一服務(wù)器獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)發(fā)送至所述客戶端之后,所述方法還包括: 所述客戶端數(shù)據(jù)處理設(shè)備建立所述哈希值與所述第一服務(wù)器的第一對(duì)應(yīng)關(guān)系,并將所述第一對(duì)應(yīng)關(guān)系存儲(chǔ)在所述客戶端數(shù)據(jù)處理設(shè)備中。6.一種數(shù)據(jù)下載設(shè)備,其特征在于,包括: 狀態(tài)確定模塊,用于從M個(gè)服務(wù)器中確定處于正常狀態(tài)的N個(gè)服務(wù)器,其中,M為大于等于I的整數(shù),N為小于等于M的整數(shù); 接收模塊,用于獲得客戶端發(fā)送的用于獲得第一數(shù)據(jù)的數(shù)據(jù)請(qǐng)求; 服務(wù)器確定模塊,用于基于所述數(shù)據(jù)請(qǐng)求,從所述N個(gè)服務(wù)器中確定出第一服務(wù)器;數(shù)據(jù)獲取模塊,用于從所述第一服務(wù)器獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)發(fā)送至所述客戶端。7.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述狀態(tài)確定模塊具體用于: 向所述M個(gè)服務(wù)器中每個(gè)服務(wù)器發(fā)送驗(yàn)證請(qǐng)求; 接收由所述M個(gè)服務(wù)器發(fā)送的M個(gè)響應(yīng)信息; 基于所述M個(gè)響應(yīng)信息,從所述M個(gè)服務(wù)器中確定出處于正常狀態(tài)的N個(gè)服務(wù)器。8.根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于,所述服務(wù)器確定模塊具體用于: 獲取所述數(shù)據(jù)請(qǐng)求的哈希值;基于所述哈希值,從所述N個(gè)服務(wù)器中確定與所述哈希值對(duì)應(yīng)的第一服務(wù)器。9.根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于,所述服務(wù)器確定模塊具體用于:獲取一預(yù)設(shè)規(guī)則;從所述N個(gè)服務(wù)器中確定滿足所述預(yù)設(shè)規(guī)則的第一服務(wù)器。10.根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,所述設(shè)備還包括:存儲(chǔ)模塊,用于建立并存儲(chǔ)所述哈希值與所述第一服務(wù)器的第一對(duì)應(yīng)關(guān)系。
【文檔編號(hào)】H04L29/08GK105978939SQ201610264262
【公開(kāi)日】2016年9月28日
【申請(qǐng)日】2016年4月25日
【發(fā)明人】劉斌
【申請(qǐng)人】樂(lè)視控股(北京)有限公司, 樂(lè)視云計(jì)算有限公司