網(wǎng)絡(luò)請求處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及網(wǎng)頁請求處理領(lǐng)域,具體地涉及網(wǎng)絡(luò)請求處理方法和裝置。
【背景技術(shù)】
[0002]互聯(lián)網(wǎng)的日益繁榮使得互聯(lián)網(wǎng)訪問量、服務(wù)器所接收到的請求量飛速增長,這給眾多互聯(lián)網(wǎng)平臺(尤其是電商企業(yè))帶來了許多技術(shù)上的挑戰(zhàn)。其中,尤其需要能夠高效、快速、穩(wěn)定地處理大批量用戶網(wǎng)絡(luò)請求的請求處理機(jī)制,以應(yīng)對因?yàn)橹T如雙十一之類的事件導(dǎo)致的請求量激增,并且防止惡意請求或機(jī)器人請求對服務(wù)器的影響和破壞。
[0003]然而,目前大多數(shù)互聯(lián)網(wǎng)服務(wù)所采用的機(jī)制并不能完美地滿足上述要求。圖1示出了一種示例性的現(xiàn)有網(wǎng)絡(luò)請求處理機(jī)制。如圖1所示,該網(wǎng)絡(luò)請求處理機(jī)制采用由Java服務(wù)器實(shí)現(xiàn)的Tomcat服務(wù)器。其中,Tomcat服務(wù)器首先從用戶接收請求,放入請求隊(duì)列。然后,線程池會從請求隊(duì)列中按照請求順序取出一個(gè)請求進(jìn)行解析。最后,在當(dāng)前線程中對解析完成的請求進(jìn)行處理,比如在接口 A處。
[0004]這種機(jī)制存在如下問題:
[0005]-對請求的解析和對請求的處理使用同一個(gè)線程,導(dǎo)致無法對請求進(jìn)行各種優(yōu)化操作;
[0006]-請求會全部擠壓到一個(gè)請求隊(duì)列,此時(shí),如果接口A出現(xiàn)問題,則會導(dǎo)致接口 B或接口 C處的請求一起排隊(duì)等待,最終一起崩潰;
[0007]-請求擠壓會引起滾雪球效應(yīng),最終導(dǎo)致雪崩,不存在將無效請求或過期請求刪除掉的機(jī)制,不能讓后來的請求繼續(xù)得到處理;
[0008]-不能實(shí)現(xiàn)如請求限制、請求拒絕、請求延遲等。
【發(fā)明內(nèi)容】
[0009]為了解決現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明提出了一種網(wǎng)頁動作處理方法和裝置。
[0010]根據(jù)本發(fā)明的一個(gè)方面,提出了一種網(wǎng)絡(luò)請求處理方法。該方法包括:對請求隊(duì)列中的請求進(jìn)行解析處理;將經(jīng)過解析的請求放入一個(gè)或多個(gè)接口隊(duì)列,其中,在放入接口隊(duì)列前對經(jīng)過解析的請求進(jìn)行相應(yīng)的預(yù)處理,以向每個(gè)接口隊(duì)列中的請求指派優(yōu)先級,從而每個(gè)接口隊(duì)列形成為優(yōu)先級隊(duì)列;以及通過相應(yīng)的接口的線程池中的線程,按照優(yōu)先級順序?qū)拿總€(gè)優(yōu)先級隊(duì)列中的請求進(jìn)行處理。
[0011]優(yōu)選地,所述請求隊(duì)列是由從用戶接收的請求形成的隊(duì)列。
[0012]優(yōu)選地,采用多線程來進(jìn)行所述預(yù)處理。
[0013]優(yōu)選地,根據(jù)請求地址將經(jīng)過解析的請求放入一個(gè)或多個(gè)接口隊(duì)列。
[0014]優(yōu)選地,針對每個(gè)接口的優(yōu)先級隊(duì)列包括正常隊(duì)列和異常隊(duì)列,其中首先對優(yōu)先級隊(duì)列中的正常隊(duì)列進(jìn)行處理。
[0015]優(yōu)選地,根據(jù)以下各項(xiàng)中的至少一個(gè)來設(shè)置每個(gè)優(yōu)先級隊(duì)列中的異常隊(duì)列:IP地址訪問頻率、用戶是否是機(jī)器人、用戶信用。
[0016]優(yōu)選地,所述方法還包括:根據(jù)服務(wù)器性能需要或管理員的指示,不對所述異常隊(duì)列中的請求進(jìn)行處理。
[0017]優(yōu)選地,所述方法還包括:為各個(gè)接口指派接口優(yōu)先級,以及根據(jù)服務(wù)器性能需要或管理員指示對各個(gè)接口的接口優(yōu)先級進(jìn)行調(diào)整。
[0018]根據(jù)本發(fā)明的另一方面,提出了一種網(wǎng)絡(luò)請求處理裝置。該裝置包括:解析裝置,用于對請求隊(duì)列中的請求進(jìn)行解析處理;預(yù)處理裝置,用于將經(jīng)過解析的請求放入一個(gè)或多個(gè)接口隊(duì)列,其中,在放入接口隊(duì)列前對經(jīng)過解析的請求進(jìn)行相應(yīng)的預(yù)處理,以向每個(gè)接口隊(duì)列中的請求指派優(yōu)先級,從而每個(gè)接口隊(duì)列形成為優(yōu)先級隊(duì)列;以及處理裝置,用于通過相應(yīng)的接口的線程池中的線程,按照優(yōu)先級順序?qū)拿總€(gè)優(yōu)先級隊(duì)列中的請求進(jìn)行處理。
[0019]通過使用本發(fā)明所提出的網(wǎng)頁請求處理方法和裝置,使得實(shí)現(xiàn)對用戶請求的高效、優(yōu)化處理,并能夠在發(fā)生異常時(shí)避免雪崩現(xiàn)象的發(fā)生。由此,解決了以上所述的現(xiàn)有技術(shù)中的問題。
【附圖說明】
[0020]圖1示出了一種示例性的現(xiàn)有網(wǎng)絡(luò)請求處理機(jī)制;
[0021]圖2示出了根據(jù)本發(fā)明的一種實(shí)施例的網(wǎng)頁請求處理方法的流程圖;
[0022]圖3示出了根據(jù)本發(fā)明的一種實(shí)施例的網(wǎng)頁請求處理裝置的結(jié)構(gòu)框圖;
[0023]圖4示出了根據(jù)本發(fā)明的一種實(shí)施例的網(wǎng)絡(luò)請求處理機(jī)制的示例。
【具體實(shí)施方式】
[0024]以下參考附圖對本發(fā)明進(jìn)行具體描述。
[0025]首先,圖2示出了根據(jù)本發(fā)明的一種實(shí)施例的網(wǎng)頁請求處理方法100的流程圖。所述網(wǎng)頁動作處理方法100開始于步驟S110,在步驟SllO中,對請求隊(duì)列中的請求進(jìn)行解析處理。然后,在步驟S120中,將經(jīng)過解析的請求放入一個(gè)或多個(gè)接口隊(duì)列,其中,在放入接口隊(duì)列前對經(jīng)過解析的請求進(jìn)行相應(yīng)的預(yù)處理,以向每個(gè)接口隊(duì)列中的請求指派優(yōu)先級,從而每個(gè)接口隊(duì)列形成為優(yōu)先級隊(duì)列。最后,在步驟S130中,通過相應(yīng)的接口的線程池中的線程,按照優(yōu)先級順序?qū)拿總€(gè)優(yōu)先級隊(duì)列中的請求進(jìn)行處理。
[0026]在步驟SllO中,對請求隊(duì)列中的請求進(jìn)行解析處理。在該步驟中,通過解析處理器對從用戶接收的請求所形成的請求隊(duì)列進(jìn)行解析。對請求進(jìn)行解析的速度非???,因此,可以優(yōu)選地使用單線程進(jìn)行處理。
[0027]在步驟S120中,將經(jīng)過解析的請求放入一個(gè)或多個(gè)接口隊(duì)列,其中,在放入接口隊(duì)列前對經(jīng)過解析的請求進(jìn)行相應(yīng)的預(yù)處理,以向每個(gè)接口隊(duì)列中的請求指派優(yōu)先級,從而每個(gè)接口隊(duì)列形成為優(yōu)先級隊(duì)列。在該步驟中,首先向經(jīng)過解析的請求進(jìn)行預(yù)處理,即指派優(yōu)先級,指派優(yōu)先級的標(biāo)準(zhǔn)可以是例如用戶是否登錄、用戶的會員等級等。根據(jù)實(shí)際性能清空,可以通過多線程來進(jìn)行所述預(yù)處理。然后,將已經(jīng)指派了優(yōu)先級的請求放入一個(gè)或多個(gè)接口隊(duì)列,這些接口隊(duì)列是針對所存在的一個(gè)或多個(gè)接口形成的,可以根據(jù)請求的地址將請求放入相應(yīng)的接口隊(duì)列中。由于之前已經(jīng)向每個(gè)請求指派了優(yōu)先級,所以每個(gè)接口隊(duì)列都是優(yōu)先級隊(duì)列,即在對一個(gè)接口隊(duì)列中的請求進(jìn)行處理時(shí)會根據(jù)優(yōu)先級的順序依次處理。
[0028]通過以上兩個(gè)步驟,可以看出在對請求隊(duì)列中的請求進(jìn)行處理之前,已經(jīng)通過單獨(dú)的線程對隊(duì)列中的