本發(fā)明涉及網(wǎng)絡請求交互技術領域,特別涉及一種處理同一用戶ID的高頻服務請求的方法及裝置。
背景技術:
在一個實施例中,在現(xiàn)有網(wǎng)絡交互業(yè)務中,在面對海量的網(wǎng)絡交互業(yè)務,需要n臺相互獨立的業(yè)務處理服務器同時處理海量的網(wǎng)絡交互業(yè)務,這樣可以保證系統(tǒng)的業(yè)務處理的速率。避免了用戶等待過長的時間,從而提高了用戶的使用體驗。但是,在一些情況下,現(xiàn)有的技術中存在一些漏洞可能會被別有用心的用戶利用。例如,通過某一個用戶ID在短時間內(nèi)高頻率的發(fā)送業(yè)務請求,可能會導致多臺相互獨立的業(yè)務處理服務器同時對數(shù)據(jù)庫服務器中的該用戶ID對應的數(shù)據(jù)進行訪問和修改,進而導致系統(tǒng)在回饋給該用戶ID的數(shù)據(jù)方面出現(xiàn)異常情況。如何妥善的處理上述問題,就成為了業(yè)界亟待解決的課題。
技術實現(xiàn)要素:
本發(fā)明提供一種處理同一用戶ID的高頻服務請求的方法及裝置,用以避免同一用戶ID在短時間內(nèi)進行高頻的服務請求而導致服務器系統(tǒng)出現(xiàn)數(shù)據(jù)錯誤的可能性,從而提高了服務器系統(tǒng)的魯棒性。
根據(jù)本發(fā)明實施例的第一方面,提供一種處理同一用戶ID的高頻服務請求的方法,包括:
用戶ID處理服務器接收尚未處理的服務請求和處理終結(jié)的服務請求中的任一者或多者;
當所述尚未處理的服務請求中的用戶ID在所述用戶ID處理服務器已經(jīng)存在時,所述用戶ID處理服務器拒絕所述尚未處理的服務請求;
當所述尚未處理的服務請求中的用戶ID在所述用戶ID處理服務器不存在時,所述用戶ID處理服務器添加所述尚未處理的服務請求中的用戶ID到所述用戶ID處理服務器中;
在所述用戶ID處理服務器中清除所述處理終結(jié)的服務請求中的用戶ID。
在一個實施例中,所述用戶ID處理服務器接收尚未處理的服務請求和處理終結(jié)的服務請求中的任一者或多者,包括:
確認用戶發(fā)出的尚未處理的服務請求在進入后臺服務器之前,實時的進入所述用戶ID處理服務器;
確認所述后臺服務器發(fā)出的處理終結(jié)的服務請求實時進入所述用戶ID處理服務器;
所述用戶ID處理服務器實時的接收用戶發(fā)出的尚未處理的服務請求和后臺服務器發(fā)出的處理終結(jié)的服務請求中的任一者或多者。
在一個實施例中,在所述用戶ID處理服務器接收所述尚未處理的服務請求之后,在所述用戶ID處理服務器處理所述尚未處理的服務請求之前,還包括:
通過所述用戶ID處理服務器分析所述新增的服務請求中的用戶ID;
通過所述用戶ID處理服務器判斷所述新增的服務請求中的用戶ID在所述用戶ID處理服務器中是否已經(jīng)存在。
在一個實施例中,在所述用戶ID處理服務器添加所述尚未處理的服務請求中的用戶ID到所述用戶ID處理服務器中之后,還包括:
所述用戶ID處理服務將所述尚未處理的服務請求發(fā)送到所述后臺服務器,以便所述后臺服務器進行相應的數(shù)據(jù)處理。
在一個實施例中,所述在所述用戶ID處理服務器中清除所述處理終結(jié)的服務請求中的用戶ID,包括:
確認所述后臺服務器處理完成的服務請求為所述處理終結(jié)的服務請求;
實時的將后臺服務器的所有所述處理終結(jié)的服務請求發(fā)送到所述用戶ID處理服務器;
在所述用戶ID處理服務器中實時的清除所述處理終結(jié)的服務請求中的用戶ID。
根據(jù)本發(fā)明實施例的第二方面,提供一種處理同一用戶ID的高頻服務請求的裝置,包括:
接收模塊,用于用戶ID處理服務器接收尚未處理的服務請求和處理終結(jié)的服務請求中的任一者或多者;
拒絕模塊,用于當所述尚未處理的服務請求中的用戶ID在所述用戶ID處理服務器已經(jīng)存在時,所述用戶ID處理服務器拒絕所述尚未處理的服務請求;
添加模塊,用于當所述尚未處理的服務請求中的用戶ID在所述用戶ID處理服務器不存在時,所述用戶ID處理服務器添加所述尚未處理的服務請求中的用戶ID到所述用戶ID處理服務器中;
清除模塊,用于在所述用戶ID處理服務器中清除所述處理終結(jié)的服務請求中的用戶ID。
在一個實施例中,所述接收模塊,包括:
第一確認子模塊,用于確認用戶發(fā)出的尚未處理的服務請求在進入后臺服務器之前,實時的進入所述用戶ID處理服務器;
第二確認子模塊,用于確認所述后臺服務器發(fā)出的處理終結(jié)的服務請求實時進入所述用戶ID處理服務器;
接收子模塊,用于所述用戶ID處理服務器實時的接收用戶發(fā)出的尚未處理的服務請求和后臺服務器發(fā)出的處理終結(jié)的服務請求中的任一者或多者。
在一個實施例中,還包括:
分析模塊,用于通過所述用戶ID處理服務器分析所述新增的服務請求中的用戶ID;
判斷模塊,用于通過所述用戶ID處理服務器判斷所述新增的服務請求中的用戶ID在所述用戶ID處理服務器中是否已經(jīng)存在。
在一個實施例中,還包括:
發(fā)送模塊,用于所述用戶ID處理服務將所述尚未處理的服務請求發(fā)送到所述后臺服務器,以便所述后臺服務器進行相應的數(shù)據(jù)處理。
在一個實施例中,所述清除模塊,包括:
第三確認子模塊,用于確認所述后臺服務器處理完成的服務請求為所述處理終結(jié)的服務請求;
發(fā)送子模塊,用于實時的將后臺服務器的所有所述處理終結(jié)的服務請求發(fā)送到所述用戶ID處理服務器;
清除子模塊,用于在所述用戶ID處理服務器中實時的清除所述處理終結(jié)的服務請求中的用戶ID。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
附圖說明
附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1為本發(fā)明一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的方法的流程圖;
圖2為本發(fā)明一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的方法的步驟S11的流程圖;
圖3為本發(fā)明另一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的方法的流程圖;
圖4為本發(fā)明再一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的方法的流程圖;
圖5為本發(fā)明一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的方法的步驟S14的流程圖;
圖6為本發(fā)明一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的裝置的框圖;
圖7為本發(fā)明一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的裝置的接收模塊61的框圖;
圖8為本發(fā)明另一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的裝置的框圖;
圖9為本發(fā)明再一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的裝置的框圖;
圖10為本發(fā)明一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的裝置的清除模塊64的框圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是根據(jù)一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的方法流程圖,如圖1所示,該處理同一用戶ID的高頻服務請求的方法,包括以下步驟S11-S14:
在步驟S11中,用戶ID處理服務器接收尚未處理的服務請求和處理終結(jié)的服務請求中的任一者或多者;
在步驟S12中,當所述尚未處理的服務請求中的用戶ID在所述用戶ID處理服務器已經(jīng)存在時,所述用戶ID處理服務器拒絕所述尚未處理的服務請求;
在步驟S13中,當所述尚未處理的服務請求中的用戶ID在所述用戶ID處理服務器不存在時,所述用戶ID處理服務器添加所述尚未處理的服務請求中的用戶ID到所述用戶ID處理服務器中;
在步驟S14中,在所述用戶ID處理服務器中清除所述處理終結(jié)的服務請求中的用戶ID。
在一個實施例中,在現(xiàn)有網(wǎng)絡交互業(yè)務中,在面對海量的網(wǎng)絡交互業(yè)務,需要n臺相互獨立的業(yè)務處理服務器同時處理海量的網(wǎng)絡交互業(yè)務,這樣可以保證系統(tǒng)的業(yè)務處理的速率。避免了用戶等待過長的時間,從而提高了用戶的使用體驗。但是,在一些情況下,現(xiàn)有的技術中存在一些漏洞可能會被別有用心的用戶利用。例如,通過某一個用戶ID在短時間內(nèi)高頻率的發(fā)送業(yè)務請求,可能會導致多臺相互獨立的業(yè)務處理服務器同時對數(shù)據(jù)庫服務器中的該用戶ID對應的數(shù)據(jù)進行訪問和修改,進而導致系統(tǒng)在回饋給該用戶ID的數(shù)據(jù)方面出現(xiàn)異常情況。本實施例中的技術方案可有效的解決上述的技術問題。
詳細步驟如下:用戶ID處理服務器接收尚未處理的服務請求和處理終結(jié)的服務請求中的任一者或多者。進一步的,確認用戶發(fā)出的尚未處理的服務請求在進入后臺服務器之前,實時的進入該用戶ID處理服務器,以及確認該后臺服務器發(fā)出的處理終結(jié)的服務請求實時進入該用戶ID處理服務器。從而保障了該用戶ID處理服務器實時的接收用戶發(fā)出的尚未處理的服務請求和后臺服務器發(fā)出的處理終結(jié)的服務請求中的任一者或多者。
在該用戶ID處理服務器接收尚未處理的服務請求之后,在該用戶ID處理服務器處理該尚未處理的服務請求之前,通過該用戶ID處理服務器分析該新增的服務請求中的用戶ID,進而通過該用戶ID處理服務器判斷該新增的服務請求中的用戶ID在該用戶ID處理服務器中是否已經(jīng)存在。
當該尚未處理的服務請求中的用戶ID在該用戶ID處理服務器已經(jīng)存在時,該用戶ID處理服務器拒絕該尚未處理的服務請求;當該尚未處理的服務請求中的用戶ID在該用戶ID處理服務器不存在時,該用戶ID處理服務器添加該尚未處理的服務請求中的用戶ID到該用戶ID處理服務器中。
在該用戶ID處理服務器添加尚未處理的服務請求中的用戶ID到該用戶ID處理服務器中之后,該用戶ID處理服務將該尚未處理的服務請求發(fā)送到該后臺服務器,以便該后臺服務器進行相應的數(shù)據(jù)處理。
確認該后臺服務器處理完成的服務請求為該處理終結(jié)的服務請求。進一步的,實時的將后臺服務器的所有該處理終結(jié)的服務請求發(fā)送到該用戶ID處理服務器,在該用戶ID處理服務器中實時的清除該處理終結(jié)的服務請求中的用戶ID。在該用戶ID處理服務器中清除該處理終結(jié)的服務請求中的用戶ID。
例如,某系統(tǒng)中有20臺業(yè)務處理服務器,某用戶ID為007,該用戶ID為007的用戶在1秒之內(nèi),發(fā)送出2000次服務請求,該2000次服務請求可以是相同的服務請求,也可以是不盡相同的服務請求。以該2000次服務請求為相同的服務請求為例。假設該用戶ID為007的用戶在系統(tǒng)中的某一項數(shù)據(jù)的數(shù)值為5,該項數(shù)據(jù)的下限為自然數(shù)0。用戶ID為007的用戶發(fā)出的服務請求的內(nèi)容為對該項數(shù)據(jù)進行減1的操作,每當該項數(shù)值減1的業(yè)務發(fā)生時,系統(tǒng)向相應的用戶發(fā)放一個獎品。假設業(yè)務處理服務器完成該類型的服務請求的最短時間為3秒。
若采用現(xiàn)有技術的技術方案,面對1秒之內(nèi)發(fā)出2000次的相同的服務請求,20臺業(yè)務服務器幾乎同時接收到該相同的服務請求。不妨假設該20臺業(yè)務服務器中最先接收到該服務請求時刻為時刻A,最晚接收到該服務請求的時刻為時刻B,時刻A與時刻B之間的差值的絕對值小于0.3秒,而任一臺業(yè)務處理服務器完成該服務請求的最短時間為3秒。該20臺業(yè)務服務器幾乎同時處理相同的服務請求,導致該用戶ID位007的用戶可以獲得20個獎品,但是該用戶ID位007的用戶的該項數(shù)據(jù)只是從5變成了4。
若采用了本實施例中的技術方案,面對1秒之內(nèi)發(fā)出2000次的相同的服務請求,該些服務請求首先經(jīng)過用戶ID處理服務器。因為用戶ID處理服務器只進行ID匹配,故用戶ID處理服務器可以承受瞬發(fā)的大數(shù)量的業(yè)務請求。當用戶ID處理服務器首次接收到該服務請求之后,就將該服務請求的用戶ID007添加到用戶ID處理服務器中。當該用戶ID007存在于該用戶ID處理服務器時,其他的用戶ID為007的業(yè)務請求全部都會被拒絕掉。當后臺服務器處理完成用戶ID位007的業(yè)務請求后,后臺服務器會向用戶ID處理服務器發(fā)送處理終結(jié)的服務請求的用戶ID。用戶ID處理服務器接收到由后臺發(fā)送來的處理終結(jié)的服務請求的用戶ID之后,會在用戶ID處理服務器中清除該用戶ID,以便接收該ID的其他服務請求。
本實施例中的技術方案可避免同一用戶ID在短時間內(nèi)進行高頻的服務請求而導致服務器系統(tǒng)出現(xiàn)數(shù)據(jù)錯誤的可能性,從而提高了服務器系統(tǒng)的魯棒性。
在一個實施例中,如圖2所示,步驟S11包括如下步驟S21-S22:
在步驟S21中,確認用戶發(fā)出的尚未處理的服務請求在進入后臺服務器之前,實時的進入所述用戶ID處理服務器;
在步驟S22中,確認所述后臺服務器發(fā)出的處理終結(jié)的服務請求實時進入所述用戶ID處理服務器;
在步驟S23中,所述用戶ID處理服務器實時的接收用戶發(fā)出的尚未處理的服務請求和后臺服務器發(fā)出的處理終結(jié)的服務請求中的任一者或多者。
在一個實施例中,為了保證用戶ID處理服務器可以有效的解決某些用戶在短時間內(nèi)發(fā)送海量的服務請求所導致服務器系統(tǒng)出現(xiàn)數(shù)據(jù)異常的情況,需要所有的服務請求先經(jīng)過用戶ID處理服務器之后,再由用戶ID處理服務器轉(zhuǎn)發(fā)給后臺服務器進行數(shù)據(jù)處理。為了保證時效性,需要實時的將用戶發(fā)出的尚未處理的服務請求在進入后臺服務器之前,實時的進入用戶ID處理服務器。
另一發(fā)面,后臺服務器將處理終結(jié)的服務請求實時的發(fā)送到用戶ID處理服務器,可以確保用戶ID處理服務器可以實時的清除處理終結(jié)的服務請求中的用戶ID。
綜上,用戶ID處理服務器實時的接收用戶發(fā)出的尚未處理的服務請求和后臺服務器發(fā)出的處理終結(jié)的服務請求中的任一者或多者。
在一個實施例中,如圖3所示,還包括如下步驟S31-S32:
在步驟S31中,通過所述用戶ID處理服務器分析所述新增的服務請求中的用戶ID;
在步驟S32中,通過所述用戶ID處理服務器判斷所述新增的服務請求中的用戶ID在所述用戶ID處理服務器中是否已經(jīng)存在。
在一個實施例中,用戶ID處理服務器首先通過分析該新增的服務請求,獲取該新增的服務請求的用戶ID。然后根據(jù)在用戶ID處理服務器中的數(shù)據(jù)庫,實時的查詢該用戶ID是否已經(jīng)在該數(shù)據(jù)中,從而判斷出該用戶ID是否存在于該用戶ID處理服務器中。
在一個實施例中,如圖4所示,還包括如下步驟S41:
在步驟S41中,所述用戶ID處理服務將所述尚未處理的服務請求發(fā)送到所述后臺服務器,以便所述后臺服務器進行相應的數(shù)據(jù)處理。
在一個實施例中,當接收到尚未處理的服務請求時,若該尚未處理的服務請求的用戶ID是用戶ID處理服務中已經(jīng)存在的用戶ID,那么用戶ID處理服務器會拒絕該尚未處理的服務請求。若該尚未處理的服務請求的用戶ID不是用戶ID處理服務中已經(jīng)存在的用戶ID,用戶ID處理服務將所述尚未處理的服務請求發(fā)送到所述后臺服務器,以便所述后臺服務器進行相應的數(shù)據(jù)處理。
在一個實施例中,如圖5所示,步驟S14包括如下步驟S51-S52:
在步驟S51中,確認所述后臺服務器處理完成的服務請求為所述處理終結(jié)的服務請求;
在步驟S52中,實時的將后臺服務器的所有所述處理終結(jié)的服務請求發(fā)送到所述用戶ID處理服務器;
在步驟S53中,在所述用戶ID處理服務器中實時的清除所述處理終結(jié)的服務請求中的用戶ID。
在一個實施例中,對后臺服務器已經(jīng)處理完成的服務請求進行標記,即確認該處理完成的服務請求為處理終結(jié)的服務請求。為了保證系統(tǒng)可實時的處理用戶發(fā)出的新的服務請求,需要實時的將后臺服務器中所有的處理終結(jié)的服務請求的用戶ID發(fā)送到用戶ID處理服務器。在用戶ID處理服務器中實時的清除所述處理終結(jié)的服務請求中的用戶ID,即可保證系統(tǒng)實時的接收和處理用戶發(fā)出的新的服務請求,從而避免某些用戶ID發(fā)出的服務請求總是被拒絕或遲遲得不到處理,從而提升了使用者的用戶體驗。
在一個實施例中,圖6是根據(jù)一示例性實施例示出的一種處理同一用戶ID的高頻服務請求的裝置框圖。如圖6示,該裝置包括接收模塊61、拒絕模塊62、添加模塊63和清除模塊64。
該接收模塊61,用于用戶ID處理服務器接收尚未處理的服務請求和處理終結(jié)的服務請求中的任一者或多者;
該拒絕模塊62,用于當所述尚未處理的服務請求中的用戶ID在所述用戶ID處理服務器已經(jīng)存在時,所述用戶ID處理服務器拒絕所述尚未處理的服務請求;
該添加模塊63,用于當所述尚未處理的服務請求中的用戶ID在所述用戶ID處理服務器不存在時,所述用戶ID處理服務器添加所述尚未處理的服務請求中的用戶ID到所述用戶ID處理服務器中;
該清除模塊64,用于在所述用戶ID處理服務器中清除所述處理終結(jié)的服務請求中的用戶ID。
如圖7所示,該接收模塊61包括第一確認子模塊71、第二確認子模塊72和接收子模塊73。
該第一確認子模塊71,用于確認用戶發(fā)出的尚未處理的服務請求在進入后臺服務器之前,實時的進入所述用戶ID處理服務器;
該第二確認子模塊72,用于確認所述后臺服務器發(fā)出的處理終結(jié)的服務請求實時進入所述用戶ID處理服務器;
該接收子模塊73,用于所述用戶ID處理服務器實時的接收用戶發(fā)出的尚未處理的服務請求和后臺服務器發(fā)出的處理終結(jié)的服務請求中的任一者或多者。
如圖8所示,還包括分析模塊81和判斷模塊82。
該分析模塊81,用于通過所述用戶ID處理服務器分析所述新增的服務請求中的用戶ID;
該判斷模塊82,用于通過所述用戶ID處理服務器判斷所述新增的服務請求中的用戶ID在所述用戶ID處理服務器中是否已經(jīng)存在。
如圖9所示,還包括發(fā)送模塊91:
該發(fā)送模塊91,用于所述用戶ID處理服務將所述尚未處理的服務請求發(fā)送到所述后臺服務器,以便所述后臺服務器進行相應的數(shù)據(jù)處理。
如圖10所示,該清除模塊64包括第三確認子模塊101、發(fā)送子模塊102和清除子模塊103。
該第三確認子模塊101,用于確認所述后臺服務器處理完成的服務請求為所述處理終結(jié)的服務請求;
該發(fā)送子模塊102,用于實時的將后臺服務器的所有所述處理終結(jié)的服務請求發(fā)送到所述用戶ID處理服務器;
該清除子模塊103,用于在所述用戶ID處理服務器中實時的清除所述處理終結(jié)的服務請求中的用戶ID。
本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。