基于服務(wù)器和客戶端架構(gòu)的業(yè)務(wù)處理方法及業(yè)務(wù)處理系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,具體地,涉及一種基于服務(wù)器和客戶端架構(gòu)的業(yè)務(wù)處理方法及業(yè)務(wù)處理系統(tǒng)。
【背景技術(shù)】
[0002]在客戶端與服務(wù)器的通信過程中,客戶端向服務(wù)器主動發(fā)起請求,并等待服務(wù)器的響應(yīng),由此完成一個生命周期。如果服務(wù)器對響應(yīng)的處理速度足夠快,則服務(wù)器可以從容應(yīng)對多個請求,實現(xiàn)平穩(wěn)運行。但是,如果服務(wù)器端的業(yè)務(wù)處理比較復(fù)雜且耗時(即,此時服務(wù)器端的業(yè)務(wù)處理需要較長的時間,客戶端一直占用與服務(wù)器的連接資源用于等待),那么必定會造成客戶端的請求等待、排隊、淤積,使得服務(wù)器的并發(fā)處理能力降低,從而引發(fā)一系列的問題:比如服務(wù)超時、客戶端始終得不到響應(yīng)、服務(wù)器超載等等,最終還可能導(dǎo)致資源耗盡、崩潰死機(jī)等嚴(yán)重后果。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種基于服務(wù)器和客戶端架構(gòu)的業(yè)務(wù)處理方法及業(yè)務(wù)處理系統(tǒng),以解決現(xiàn)有技術(shù)中服務(wù)器并發(fā)處理能力低的問題。
[0004]為了實現(xiàn)上述目的,本發(fā)明提供一種基于服務(wù)器和客戶端架構(gòu)的業(yè)務(wù)處理方法,其中該方法包括:所述客戶端發(fā)送業(yè)務(wù)處理請求;所述服務(wù)器接收并存儲所述業(yè)務(wù)處理請求;所述服務(wù)器發(fā)送第一響應(yīng)消息至所述客戶端,該第一響應(yīng)消息包括所述業(yè)務(wù)處理請求的標(biāo)識;以及所述服務(wù)器基于所述業(yè)務(wù)處理請求對業(yè)務(wù)進(jìn)行處理,并保存處理結(jié)果。
[0005]本發(fā)明還提供一種業(yè)務(wù)處理系統(tǒng),該系統(tǒng)包括客戶端和服務(wù)器,其中:所述客戶端用于發(fā)送業(yè)務(wù)處理請求;所述服務(wù)器包括:接收裝置,用于接收并存儲所述業(yè)務(wù)處理請求,發(fā)送裝置,用于發(fā)送第一響應(yīng)消息至所述客戶端,該第一響應(yīng)消息包括所述業(yè)務(wù)處理請求的標(biāo)識;以及處理裝置,用于基于所述業(yè)務(wù)處理請求對業(yè)務(wù)進(jìn)行處理,并保存處理結(jié)果。
[0006]通過上述技術(shù)方案,服務(wù)器從所述客戶端接收并存儲業(yè)務(wù)處理請求,并且發(fā)送第一響應(yīng)消息至客戶端,這樣客戶端就不會再繼續(xù)占用連接資源來等待處理結(jié)果,避免了不必要的等待、排隊,之后服務(wù)器基于業(yè)務(wù)處理請求對業(yè)務(wù)進(jìn)行處理,并保存處理結(jié)果。由此,通過將并發(fā)處理的業(yè)務(wù)進(jìn)行異步處理拆分,避免并發(fā)請求形成耗時間占資源的排隊阻塞,從而提高了服務(wù)器并發(fā)處理能力。也就是,無需改變原有業(yè)務(wù)邏輯,通過解耦方法來提高服務(wù)器的吞吐量。
[0007]本發(fā)明的其它特征和優(yōu)點將在隨后的【具體實施方式】部分予以詳細(xì)說明。
【附圖說明】
[0008]附圖是用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與下面的【具體實施方式】一起用于解釋本發(fā)明,但并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0009]圖1是根據(jù)本發(fā)明一種實施方式的基于服務(wù)器和客戶端架構(gòu)的業(yè)務(wù)處理方法的流程圖;
[0010]圖2是根據(jù)本發(fā)明一種實施方式的業(yè)務(wù)處理系統(tǒng)的方框圖;以及
[0011]圖3是根據(jù)本發(fā)明一種實施方式的服務(wù)器的方框圖。
【具體實施方式】
[0012]以下結(jié)合附圖對本發(fā)明的【具體實施方式】進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的【具體實施方式】僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
[0013]圖1是根據(jù)本發(fā)明一種實施方式的基于服務(wù)器和客戶端架構(gòu)的業(yè)務(wù)處理方法的流程圖。
[0014]如圖1所示,本發(fā)明提供的一種基于服務(wù)器和客戶端架構(gòu)的業(yè)務(wù)處理方法包括:
[0015]S100,所述客戶端發(fā)送業(yè)務(wù)處理請求;
[0016]S102,所述服務(wù)器接收并存儲所述業(yè)務(wù)處理請求;
[0017]S104,所述服務(wù)器發(fā)送第一響應(yīng)消息至所述客戶端,該第一響應(yīng)消息包括所述業(yè)務(wù)處理請求的標(biāo)識;以及
[0018]S106,所述服務(wù)器基于所述業(yè)務(wù)處理請求對業(yè)務(wù)進(jìn)行處理,并保存處理結(jié)果。
[0019]通過服務(wù)器從所述客戶端接收并存儲業(yè)務(wù)處理請求,并且發(fā)送第一響應(yīng)消息至客戶端(即,解耦),這樣客戶端就不會再繼續(xù)占用連接資源來等待處理結(jié)果,避免了不必要的等待、排隊,之后服務(wù)器基于業(yè)務(wù)處理請求對業(yè)務(wù)進(jìn)行處理,并保存處理結(jié)果。由此,通過將并發(fā)處理的業(yè)務(wù)進(jìn)行異步處理拆分,避免并發(fā)請求形成耗時間占資源的排隊阻塞,從而提高了服務(wù)器并發(fā)處理能力和吞吐量。也就是,無需改變原有業(yè)務(wù)邏輯,通過解耦方法來提高服務(wù)器的吞吐量。
[0020]在本發(fā)明中,解耦指的是將并發(fā)處理的業(yè)務(wù)進(jìn)行異步處理拆分,服務(wù)器端對客戶端的請求即刻返回,而實質(zhì)性的耗時、耗資源的業(yè)務(wù)處理由服務(wù)器端的專門的工作線程逐一進(jìn)行處理。在這種情況下,無論業(yè)務(wù)處理有多緩慢,由于沒有阻塞和占用,客戶端都無從察覺,而服務(wù)器的吞吐量已經(jīng)得以提升。
[0021]其中,該方法還包括:
[0022]S108,所述客戶端發(fā)送請求處理結(jié)果的請求,其中所述請求處理結(jié)果的請求包括所述業(yè)務(wù)處理請求的標(biāo)識;
[0023]S110,所述服務(wù)器接收所述請求處理結(jié)果的請求;
[0024]S112,所述服務(wù)器基于所述請求處理結(jié)果的請求判斷是否存在與所述業(yè)務(wù)處理請求的標(biāo)識對應(yīng)的處理結(jié)果,如果是,轉(zhuǎn)至步驟S114,否則轉(zhuǎn)至步驟S116 ;
[0025]S114,在判斷為存在的情況下,所述服務(wù)器將該處理結(jié)果發(fā)送給所述客戶端;
[0026]S116,在判斷為不存在的情況下,所述服務(wù)器發(fā)送表示不存在所述處理結(jié)果的第二響應(yīng)消息至所述客戶端,并繼續(xù)接收所述客戶端在未接收到所述處理結(jié)果的情況下在下一個輪詢時間節(jié)點發(fā)送的所述請求處理結(jié)果的請求。
[0027]也就是,如果服務(wù)器已經(jīng)處理完畢,客戶端發(fā)送請求后就可以獲得處理結(jié)果,否則客戶端將在到達(dá)下一個輪詢時間節(jié)點時再次請求??梢钥闯觯?wù)器對處理結(jié)果的請求也是立即響應(yīng)并返回的,客戶端幾乎不需要等待。
[0028]通過將客戶端發(fā)起的業(yè)務(wù)處理請求與請求處理結(jié)果的請求進(jìn)行異步處理拆分,艮P,從業(yè)務(wù)處理請求與請求處理結(jié)果的請求統(tǒng)一并發(fā)到服務(wù)器(相同的后臺服務(wù))改為分別將兩類請求分發(fā)到服務(wù)器(兩個分離的后臺服務(wù)),由此,由于兩類請求復(fù)雜程度基本相當(dāng),分開后可以加倍服務(wù)器后臺處理容量。
[0029]根據(jù)本發(fā)明一種實施方式,所述業(yè)務(wù)處理請求包括表示業(yè)務(wù)類型的信息。
[0030]對于待處理的業(yè)務(wù)通??梢苑譃閮煞N:依賴第三方服務(wù)的業(yè)務(wù)和不依賴第三方服務(wù)的業(yè)務(wù),其中不依賴于第三方服務(wù)的業(yè)務(wù)可控性較高,一旦出現(xiàn)問題,其排查速度較快、所需恢復(fù)時間較短;而依賴于第三方服務(wù)的業(yè)務(wù),故障排查涉及面廣,鏈路長,復(fù)雜度高,往往比較困難,恢復(fù)需要的時間較長。因此,通過將表示業(yè)務(wù)類型的信息包括在業(yè)務(wù)處理請求中可以對不依賴第三方服務(wù)的業(yè)務(wù)和依賴第三方服務(wù)的業(yè)務(wù)進(jìn)行區(qū)分。由此,可以避免相互的惡性干擾,其中一類服務(wù)的異常不會導(dǎo)致另一類服務(wù)的不可用,進(jìn)而可以保證不依賴第三方服務(wù)的那些業(yè)務(wù)得以順利處理,而不會位列于關(guān)于依賴第三方服務(wù)的請求之后,從而能夠降低可能發(fā)生淤積隊列的成員數(shù)量,降低配對阻塞風(fēng)險。
[0031]根據(jù)本發(fā)明一種實施方式,所述處理結(jié)果保存在數(shù)據(jù)庫或緩存中。優(yōu)選地,所示處理結(jié)果保存在緩存中。由此,通