一種基于反向代理服務(wù)器處理請求的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種基于反向代理服務(wù)器處理請求的方法和一種基于反向代理服務(wù)器處理請求的裝置。
【背景技術(shù)】
[0002]反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受網(wǎng)絡(luò)上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給網(wǎng)絡(luò)上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一個服務(wù)器。
[0003]以下載請求為例,反向代理服務(wù)器對外提供文件下載服務(wù),用戶發(fā)起下載請求,發(fā)送到反向代理服務(wù)器,將請求下載的文件從后端文件系統(tǒng)集群拉取到反向代理服務(wù)器,發(fā)送到客戶端。
[0004]如上所述,下載一個文件,一般存在從文件系統(tǒng)集群到反向代理服務(wù)器,從反向代理服務(wù)器到客戶端的兩個過程。
[0005]一方面,文件系統(tǒng)集群到反向代理服務(wù)器之間的網(wǎng)絡(luò),為局域網(wǎng),速度較快,如lOM/s,當下載大文件時,可能會瞬間達到網(wǎng)卡最大帶寬,下載大型文件時,容易導致反向代理服務(wù)器跟文件系統(tǒng)集群的網(wǎng)絡(luò)I/O過高,資源消耗很大。
[0006]另一方面,反向代理服務(wù)器與客戶端之間的網(wǎng)絡(luò),一般為互聯(lián)網(wǎng),速度較慢,如IM/S,遠小于獲取文件的速度,受限于數(shù)據(jù)的傳輸端口,不能及時發(fā)送到客戶端的數(shù)據(jù)會在反向代理服務(wù)器上暫存,導致反向代理服務(wù)器的磁盤I/O負載過高,浪費大量的存儲空間,系統(tǒng)資源消耗很大,效率很低。
【發(fā)明內(nèi)容】
[0007]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種基于反向代理服務(wù)器處理請求的方法和相應的一種基于反向代理服務(wù)器處理請求的裝置。
[0008]依據(jù)本發(fā)明的一個方面,提供了一種基于反向代理服務(wù)器處理請求的方法,包括:
[0009]接收客戶端的處理請求;
[0010]將所述處理請求按照串行模式分拆成一個或多個處理子請求,以依次從服務(wù)器獲取響應所述一個或多個處理子請求的一個或多個響應信息;以及
[0011]將所述一個或多個響應信息返回所述客戶端。
[0012]可選地,所述處理請求包括下載請求,所述下載請求用于請求下載文件;
[0013]所述將所述處理請求按照串行模式分拆成一個或多個處理子請求,以依次從服務(wù)器獲取與一個或多個響應信息的步驟進一步包括:
[0014]確定當前請求下載的文件的數(shù)據(jù)范圍;
[0015]將所述數(shù)據(jù)范圍添加到所述下載請求中,以生成處理子請求;
[0016]將所述處理子請求發(fā)送至服務(wù)器;
[0017]接收所述服務(wù)器針對所述處理子請求返回的響應信息,其中所述響應信息中包括所述數(shù)據(jù)范圍對應的數(shù)據(jù)塊;
[0018]判斷當前是否獲取文件完成;以及
[0019]當獲取文件未完成時,返回執(zhí)行所述確定當前請求下載的文件的數(shù)據(jù)范圍的步驟。
[0020]可選地,所述確定當前請求下載的文件的數(shù)據(jù)范圍的步驟進一步包括:
[0021]將初始的數(shù)據(jù)范圍設(shè)置為當前請求下載的文件的數(shù)據(jù)范圍;以及
[0022]和/ 或,
[0023]將與上一數(shù)據(jù)范圍相鄰的數(shù)據(jù)范圍設(shè)置為當前請求下載的文件的數(shù)據(jù)范圍。
[0024]可選地,所述將所述處理子請求發(fā)送至服務(wù)器的步驟進一步包括:
[0025]通過負載均衡將所述處理子請求發(fā)送至服務(wù)器。
[0026]可選地,所述判斷當前是否獲取文件完成的步驟進一步包括:
[0027]從所述響應信息中提取當前返回的數(shù)據(jù)塊的數(shù)據(jù)范圍、所述文件的長度;
[0028]確定當前返回的數(shù)據(jù)塊的數(shù)據(jù)范圍與所述文件的長度是否匹配;以及
[0029]若是,則判斷獲取文件完成,否則,判斷獲取文件未完成。
[0030]可選地,所述將所述一個或多個響應信息返回所述客戶端的步驟進一步包括:
[0031]從所述響應信息中刪除當前返回的數(shù)據(jù)塊的數(shù)據(jù)范圍;以及
[0032]將刪除當前返回的數(shù)據(jù)塊的數(shù)據(jù)范圍之后的響應信息返回所述客戶端。
[0033]根據(jù)本發(fā)明的另一方面,提供了一種基于反向代理服務(wù)器處理請求的裝置,包括:
[0034]處理請求接收模塊,適于接收客戶端的處理請求;
[0035]請求分拆響應模塊,適于將所述處理請求按照串行模式分拆成一個或多個處理子請求,以依次從服務(wù)器獲取響應所述一個或多個處理子請求的一個或多個響應信息;以及
[0036]響應信息返回模塊,適于將所述一個或多個響應信息返回所述客戶端。
[0037]可選地,所述處理請求包括下載請求,所述下載請求用于請求下載文件;所述請求分拆響應模塊還適于:
[0038]確定當前請求下載的文件的數(shù)據(jù)范圍;
[0039]將所述數(shù)據(jù)范圍添加到所述下載請求中,以生成處理子請求;
[0040]將所述處理子請求發(fā)送至服務(wù)器;
[0041]接收所述服務(wù)器針對所述處理子請求返回的響應信息;所述響應信息中包括所述數(shù)據(jù)范圍對應的數(shù)據(jù)塊;
[0042]判斷當前是否獲取文件完成;以及
[0043]當獲取文件未完成時,返回執(zhí)行所述確定當前請求下載的文件的數(shù)據(jù)范圍的步驟。
[0044]可選地,所述請求分拆響應模塊還適于:
[0045]將初始的數(shù)據(jù)范圍設(shè)置為當前請求下載的文件的數(shù)據(jù)范圍;以及
[0046]和/ 或,
[0047]將與上一數(shù)據(jù)范圍相鄰的數(shù)據(jù)范圍設(shè)置為當前請求下載的文件的數(shù)據(jù)范圍。
[0048]可選地,所述請求分拆響應模塊還適于:
[0049]通過負載均衡將所述處理子請求發(fā)送至服務(wù)器。
[0050]可選地,所述請求分拆響應模塊還適于:
[0051]從所述響應信息中提取當前返回的數(shù)據(jù)塊的數(shù)據(jù)范圍、所述文件的長度;
[0052]確定當前返回的數(shù)據(jù)塊的數(shù)據(jù)范圍與所述文件的長度是否匹配;以及
[0053]若是,則判斷獲取文件完成,否則,判斷獲取文件未完成。
[0054]可選地,所述響應信息返回模塊還適于:
[0055]從所述響應信息中刪除當前返回的數(shù)據(jù)塊的數(shù)據(jù)范圍;以及
[0056]將刪除當前返回的數(shù)據(jù)塊的數(shù)據(jù)范圍之后的響應信息返回所述客戶端。
[0057]本發(fā)明實施例將客戶端的處理請求分拆為一個或多個處理子請求,以串行模式逐次響應,一方面,反向代理服務(wù)器與服務(wù)器之間交互處理子請求對應的響應信息,降低了響應信息的數(shù)據(jù)量,降低了反向代理服務(wù)器與服務(wù)器的網(wǎng)絡(luò)1/0,降低了資源消耗,另一方面,由于響應信息的數(shù)據(jù)量減少了,可以減少在反向代理服務(wù)器暫存的數(shù)據(jù)量,降低反向代理服務(wù)器的磁盤1/0,減少存儲空間的浪費,進一步降低資源消耗,提高了處理請求的效率。
[0058]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0059]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0060]圖1為根據(jù)本發(fā)明一個實施例的一種基于反向代理服務(wù)器處理請求的方法實施例I的步驟流程圖;
[0061]圖2為根據(jù)本發(fā)明一個實施例的一種基于反向代理服務(wù)器的系統(tǒng)架構(gòu)示意圖;
[0062]圖3為根據(jù)本發(fā)明一個實施例的一種基于反向代理服務(wù)器處理請求的方法實施例2的步驟流程圖;以及
[0063]圖4為根據(jù)本發(fā)明一個實施例的一種基于反向代理服務(wù)器處理請求的裝置實施例的方塊示意圖。
【具體實施方式】
[0064]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
[0065]參照圖1,示出了根據(jù)本發(fā)明一個實施例的一種基于反向代理服務(wù)器處理請求的方法實施例1的步驟流程圖,具體可以包括如下步驟:
[0066]步驟101,接收客戶端的處理請求;
[0067]步驟102,將所述處理請求按照串行模式分拆成一個或多個處理子請求,以依次從服務(wù)器獲取響應所述一個或多個處理子請求的一個或多個響應信息;
[0068]步驟103,將所述一個或多個響應信息返回所述客戶端。
[0069]如圖2所示,反向代理服務(wù)器201可以代理外部網(wǎng)絡(luò)(如因特網(wǎng)Internet 204)上的主機,如客戶端(Client) 205、客戶端(Client) 206、客戶端(Client) 207等,訪問內(nèi)部網(wǎng)絡(luò)(如WEB服務(wù)器202、文件服務(wù)器203等)時,這種代理服務(wù)的方式稱為反向代理服務(wù)。
[0070]此時,反向代理服務(wù)器201對外可以表現(xiàn)為一個應用服務(wù)器(如WEB服務(wù)器),外部網(wǎng)絡(luò)的主機可以簡單把它當作一個標準的應用服務(wù)器而不需要特定