本申請涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種業(yè)務(wù)請求的響應(yīng)方法及裝置。
背景技術(shù):
隨著信息技術(shù)的發(fā)展,服務(wù)器(如:網(wǎng)站服務(wù)器)可以為不同的用戶提供豐富的業(yè)務(wù)服務(wù)。
現(xiàn)有技術(shù)中,在用戶與服務(wù)器交互的過程中,服務(wù)器往往會(huì)針對所處理的業(yè)務(wù)設(shè)置相應(yīng)的超時(shí)時(shí)間。具體而言:當(dāng)用戶向服務(wù)器發(fā)送了獲得業(yè)務(wù)服務(wù)的業(yè)務(wù)請求后,服務(wù)器就會(huì)針對接收到的業(yè)務(wù)請求進(jìn)行處理,對于用戶而言,會(huì)等待服務(wù)器返回響應(yīng)結(jié)果。為了避免出現(xiàn)用戶一直等待的情況,當(dāng)用戶的實(shí)際等待時(shí)間超過了超時(shí)時(shí)間后,服務(wù)器就會(huì)針對該用戶執(zhí)行發(fā)送失敗通知或?yàn)樵撚脩糇兏谌椒?wù)器等操作,對業(yè)務(wù)請求進(jìn)行響應(yīng)。可以認(rèn)為,在上述過程中,超時(shí)時(shí)間就是用戶的最大等待時(shí)間。
但是,在現(xiàn)有的對業(yè)務(wù)請求進(jìn)行響應(yīng)的方式中,當(dāng)服務(wù)器設(shè)置了超時(shí)時(shí)間后,對于任意的用戶所發(fā)送的業(yè)務(wù)請求而言,超時(shí)時(shí)間均固定一致,然而,在實(shí)際應(yīng)用場景下,不同業(yè)務(wù)請求的實(shí)際等待時(shí)間可能并不一致,如:在不同時(shí)間段,同一服務(wù)器所面臨的訪問壓力并不相同,若采用現(xiàn)有的方式設(shè)置了固定的超時(shí)時(shí)間,那么,對于訪問壓力較大的時(shí)間段,可能會(huì)導(dǎo)致服務(wù)器宕機(jī)的情況;又例如:某些業(yè)務(wù)請求可能需要較長的響應(yīng)時(shí)間(甚至超過預(yù)設(shè)的超時(shí)時(shí)間),這樣的場景下,服務(wù)器針對該業(yè)務(wù)請求仍會(huì)發(fā)出失敗(或重試)通知,又或者為業(yè)務(wù)請求變更第三方服務(wù)器,從而影響對業(yè)務(wù)請求的處理。顯然,現(xiàn)有技術(shù)中對業(yè)務(wù)請求的響應(yīng)方式,并不適合于動(dòng)態(tài)、多變的業(yè)務(wù)請求。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供一種業(yè)務(wù)請求的響應(yīng)方法及裝置,用以解決目前對業(yè)務(wù)請求進(jìn)行響應(yīng)的方式適用性較差的問題。
本申請實(shí)施例提供的一種業(yè)務(wù)請求的響應(yīng)方法,包括:
服務(wù)器接收業(yè)務(wù)請求;
獲取所述服務(wù)器自身當(dāng)前的各運(yùn)行參數(shù);
根據(jù)所述各運(yùn)行參數(shù),確定所述服務(wù)器處理所述業(yè)務(wù)請求的承載能力預(yù)估值;
根據(jù)所述承載能力預(yù)估值,確定所述業(yè)務(wù)請求對應(yīng)的超時(shí)時(shí)間;
根據(jù)所述超時(shí)時(shí)間,對所述業(yè)務(wù)請求進(jìn)行處理。
本申請實(shí)施例提供的一種業(yè)務(wù)請求的響應(yīng)裝置,包括:
接收模塊,用于接收業(yè)務(wù)請求;
獲取模塊,用于獲取服務(wù)器自身當(dāng)前的各運(yùn)行參數(shù);
預(yù)估值模塊,用于根據(jù)所述各運(yùn)行參數(shù),確定所述服務(wù)器處理所述業(yè)務(wù)請求的承載能力預(yù)估值;
超時(shí)時(shí)間模塊,用于根據(jù)所述承載能力預(yù)估值,確定所述業(yè)務(wù)請求對應(yīng)的超時(shí)時(shí)間;
處理模塊,根據(jù)所述超時(shí)時(shí)間,對所述業(yè)務(wù)請求進(jìn)行處理。
本申請實(shí)施例提供一種業(yè)務(wù)請求的響應(yīng)方法及裝置,當(dāng)服務(wù)器接收到了業(yè)務(wù)請求后,將獲取該服務(wù)器自身的運(yùn)行參數(shù),在此基礎(chǔ)上,服務(wù)器將預(yù)估處理該業(yè)務(wù)請求后,服務(wù)器屆時(shí)的運(yùn)行狀態(tài),也即,承載能力預(yù)估值,而承載能力預(yù)估值反映了服務(wù)器處理業(yè)務(wù)請求后服務(wù)器屆時(shí)的負(fù)荷量,再根據(jù)承載能力預(yù)估值,進(jìn)一步確定出應(yīng)該為業(yè)務(wù)請求配置的超時(shí)時(shí)間的時(shí)長。與現(xiàn)有技術(shù)不同的是,在本申請實(shí)施例中,并不會(huì)統(tǒng)一設(shè)置固定的超時(shí)時(shí)間,而是根據(jù)每一業(yè)務(wù)請求以及當(dāng)前時(shí)刻服務(wù)器的運(yùn)行狀態(tài),來預(yù)估出服務(wù)器處理了該業(yè)務(wù)請求后的運(yùn)行狀態(tài),從而根據(jù)預(yù)估的運(yùn)行狀態(tài)為業(yè)務(wù)請求分配相應(yīng)的超時(shí)時(shí)間。這樣的方式即保證了對多變的業(yè)務(wù)請求設(shè)置合理的超時(shí)時(shí)間,也保證了服務(wù)器的運(yùn) 行狀態(tài)不會(huì)出現(xiàn)過載的現(xiàn)象,有效提升了對業(yè)務(wù)請求的超時(shí)時(shí)間進(jìn)行設(shè)置的適用性。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1為本申請實(shí)施例提供的業(yè)務(wù)請求的響應(yīng)過程;
圖2為本申請實(shí)施例提供的業(yè)務(wù)請求的響應(yīng)裝置結(jié)構(gòu)示意圖;
圖3為本申請實(shí)施例提供的服務(wù)器內(nèi)用于執(zhí)行業(yè)務(wù)請求的響應(yīng)過程的硬件結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本申請的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請具體實(shí)施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
圖1為本申請實(shí)施例提供的業(yè)務(wù)請求的響應(yīng)過程,該過程具體包括以下步驟:
s101:服務(wù)器接收業(yè)務(wù)請求。
在本申請實(shí)施例中,所述的服務(wù)器可以是服務(wù)提供方(如:網(wǎng)站)后臺的服務(wù)器,通過該服務(wù)器,可以面向不同的用戶提供各類業(yè)務(wù)服務(wù)。所述的業(yè)務(wù)請求,可以是用戶為了獲得服務(wù)器提供的業(yè)務(wù)服務(wù),而使用相應(yīng)的終端所發(fā)出的,這里并不構(gòu)成對本申請的限定。
s102:獲取所述服務(wù)器自身當(dāng)前的各運(yùn)行參數(shù)。
在實(shí)際應(yīng)用場景下,服務(wù)器在對其接收到的業(yè)務(wù)請求進(jìn)行處理的過程中,會(huì)消耗服務(wù)器自身的處理資源,如:處理業(yè)務(wù)請求會(huì)占用中央處理器(centralprocessingunit,cpu)的處理線程、或使用內(nèi)存等。而服務(wù)器所消耗的處理資源可通過相應(yīng)的運(yùn)行參數(shù)反映出來,例如:cpu的占用率、內(nèi)存的使用量等等。所以,在上述步驟s102中,可以獲取服務(wù)器當(dāng)前自身的運(yùn)行參數(shù)。
s103:根據(jù)所述各運(yùn)行參數(shù),確定所述服務(wù)器處理所述業(yè)務(wù)請求的承載能力預(yù)估值。
在本申請實(shí)施例中,當(dāng)服務(wù)器接收到了業(yè)務(wù)請求后,會(huì)為該業(yè)務(wù)請求配置相應(yīng)的超時(shí)時(shí)間。而超時(shí)時(shí)間的配置將由服務(wù)器當(dāng)前的運(yùn)行狀態(tài)決定,換言之,服務(wù)器將在當(dāng)前運(yùn)行狀態(tài)的基礎(chǔ)上,對該業(yè)務(wù)請求的處理過程進(jìn)行預(yù)先估計(jì),從而進(jìn)一步?jīng)Q定出為該業(yè)務(wù)請求分配超時(shí)時(shí)間的時(shí)長。
基于此,可知在本申請實(shí)施例中,承載能力預(yù)估值反映了服務(wù)器處理新增的業(yè)務(wù)請求后,服務(wù)器屆時(shí)的處理資源的消耗情況。承載能力預(yù)估值越高,就表明服務(wù)器所消耗的處理資源越多(即負(fù)荷越高),反之,消耗的處理資源越少(即負(fù)荷越低)。
需要說明的是,對于上述步驟s103而言,服務(wù)器并未對新增的業(yè)務(wù)請求進(jìn)行處理,而是對處理了該業(yè)務(wù)請求后的服務(wù)器的工作狀態(tài)進(jìn)行預(yù)估。從而,在獲得了服務(wù)器的承載能力預(yù)估值后,便可以進(jìn)一步確定出新增的業(yè)務(wù)請求應(yīng)該分配的超時(shí)時(shí)間。也即,執(zhí)行下述步驟s104。
s104:根據(jù)所述承載能力預(yù)估值,確定所述業(yè)務(wù)請求對應(yīng)的超時(shí)時(shí)間。
正如前述,承載能力預(yù)估值反映了服務(wù)器對新增的業(yè)務(wù)請求進(jìn)行處理后,服務(wù)器的運(yùn)行狀態(tài),那么,根據(jù)承載能力預(yù)估值,也就可以進(jìn)一步地確定出應(yīng)該為新增的業(yè)務(wù)請求分配的等待時(shí)間,也即,超時(shí)時(shí)間。
作為本申請實(shí)施例中的一種方式,可以認(rèn)為,服務(wù)器的承載能力預(yù)估值越高,那么,為業(yè)務(wù)請求所分配的超時(shí)時(shí)間越短,這是因?yàn)樵诜?wù)器高負(fù)荷的運(yùn)行狀態(tài)下,大量的業(yè)務(wù)請求等待處理,可能會(huì)造成服務(wù)器出現(xiàn)宕機(jī)的現(xiàn)象,這 將嚴(yán)重影響對業(yè)務(wù)請求的順利處理,此時(shí),可減少業(yè)務(wù)請求的超時(shí)時(shí)間,使得業(yè)務(wù)請求在等待一段時(shí)間后,轉(zhuǎn)換值其他渠道進(jìn)行處理,從而減緩服務(wù)器的壓力,保證服務(wù)器不出現(xiàn)宕機(jī)的現(xiàn)象。當(dāng)然,這里并不構(gòu)成對本申請的限定。
s105:根據(jù)所述超時(shí)時(shí)間,對所述業(yè)務(wù)請求進(jìn)行處理。
在確定了業(yè)務(wù)請求的超時(shí)時(shí)間后,便可以根據(jù)超時(shí)時(shí)間,對業(yè)務(wù)請求進(jìn)行處理并做出相應(yīng)的響應(yīng)。例如:若為業(yè)務(wù)請求設(shè)置了足夠長的超時(shí)時(shí)間,那么,服務(wù)器便可以對業(yè)務(wù)請求進(jìn)行處理,返回進(jìn)行處理后的響應(yīng)結(jié)果;而如果為業(yè)務(wù)請求設(shè)置的超時(shí)時(shí)間較短,可能導(dǎo)致服務(wù)器來不及處理該業(yè)務(wù)請求,那么,服務(wù)器在超時(shí)時(shí)間到達(dá)后,就可以向用戶返回處理失敗或重試的響應(yīng)結(jié)果,也可以自動(dòng)變更該業(yè)務(wù)請求對應(yīng)的業(yè)務(wù)渠道,即,將業(yè)務(wù)請求的服務(wù)器變更為其他第三方的服務(wù)器。當(dāng)然,上述示例并不構(gòu)成對本申請的限定。
通過上述步驟,當(dāng)服務(wù)器接收到了業(yè)務(wù)請求后,將獲取該服務(wù)器自身的運(yùn)行參數(shù),在此基礎(chǔ)上,服務(wù)器將預(yù)估處理該業(yè)務(wù)請求后,服務(wù)器屆時(shí)的運(yùn)行狀態(tài),也即,承載能力預(yù)估值,而承載能力預(yù)估值反映了服務(wù)器處理業(yè)務(wù)請求后服務(wù)器屆時(shí)的負(fù)荷量,再根據(jù)承載能力預(yù)估值,進(jìn)一步確定出應(yīng)該為業(yè)務(wù)請求配置的超時(shí)時(shí)間的時(shí)長。與現(xiàn)有技術(shù)不同的是,在本申請實(shí)施例中,并不會(huì)統(tǒng)一設(shè)置固定的超時(shí)時(shí)間,而是根據(jù)每一業(yè)務(wù)請求以及當(dāng)前時(shí)刻服務(wù)器的運(yùn)行狀態(tài),來預(yù)估出服務(wù)器處理了該業(yè)務(wù)請求后的運(yùn)行狀態(tài),從而根據(jù)預(yù)估的運(yùn)行狀態(tài)為業(yè)務(wù)請求分配相應(yīng)的超時(shí)時(shí)間。這樣的方式即保證了對多變的業(yè)務(wù)請求設(shè)置合理的超時(shí)時(shí)間,也保證了服務(wù)器的運(yùn)行狀態(tài)不會(huì)出現(xiàn)過載的現(xiàn)象,有效提升了對業(yè)務(wù)請求的超時(shí)時(shí)間進(jìn)行設(shè)置的適用性。
作為本申請實(shí)施例中的一種實(shí)施例,所述的運(yùn)行參數(shù)包括但不限于:cpu的占用率、內(nèi)存使用量、線程占用量等。這里并不構(gòu)成對本申請的限定。
需要說明的是,對于服務(wù)器而言,在處理不同類型的業(yè)務(wù)請求時(shí),所消耗的處理資源各不相同,例如:在處理用戶對自身賬戶的歷史支付記錄的查詢請求時(shí),只需將該賬戶的歷史數(shù)據(jù)調(diào)取出來,并展示給用戶,因此,可以認(rèn)為, 查詢請求只會(huì)消耗極少的服務(wù)器的處理資源。又例如:在處理用戶的支付請求時(shí),除了需要確定用戶所要支付的對象之外,還需從用戶賬戶的部分資源轉(zhuǎn)移給其他賬戶,以完成支付流程,可以認(rèn)為,支付請求將消耗一定量的服務(wù)器的處理資源。
通過上例可見,服務(wù)器在處理不同業(yè)務(wù)類型的業(yè)務(wù)請求時(shí),將消耗不同數(shù)量的處理資源,因此,對于本申請示例中的上述內(nèi)容而言,在根據(jù)所述各運(yùn)行參數(shù),確定所述服務(wù)器處理所述業(yè)務(wù)請求的承載能力預(yù)估值之前,所述方法還包括:確定所述業(yè)務(wù)請求所屬的業(yè)務(wù)類型。
那么,在已知了相應(yīng)的業(yè)務(wù)請求的業(yè)務(wù)類型,以及服務(wù)器當(dāng)前的運(yùn)行參數(shù)后,便可以進(jìn)一步的預(yù)估出服務(wù)器在當(dāng)前運(yùn)行狀態(tài)的基礎(chǔ)上,再對該業(yè)務(wù)請求進(jìn)行處理后服務(wù)器的負(fù)荷狀態(tài),也即,本申請實(shí)施例中的承載能力預(yù)估值。
確定服務(wù)器的承載能力預(yù)估值時(shí),服務(wù)器中的各運(yùn)行參數(shù)之間具有不同的權(quán)重,例如:在某服務(wù)器中,其cpu具有較強(qiáng)的處理性能,內(nèi)存較為充足,而可提供的處理線程較少,在此情況下,有效的處理線程數(shù)量的多少,將顯著影響服務(wù)器的工作負(fù)荷,因此,可以認(rèn)為本示例中,處理線程的權(quán)重較大。顯然,從本示例中可見,在確定服務(wù)器的承載能力預(yù)估值的過程中,需要考慮各運(yùn)行參數(shù)的權(quán)重。
此外,服務(wù)器在當(dāng)前運(yùn)行狀態(tài)的基礎(chǔ)上,再對新增的業(yè)務(wù)請求進(jìn)行處理的情況下,服務(wù)器的運(yùn)行狀態(tài)就會(huì)發(fā)生變化,換言之,服務(wù)器的各運(yùn)行參數(shù)會(huì)發(fā)生相應(yīng)的變化,具體而言,由于服務(wù)器對任意業(yè)務(wù)請求進(jìn)行處理,都要消耗相應(yīng)的處理資源,所以,服務(wù)器在對新增的業(yè)務(wù)請求進(jìn)行處理后,其中的各運(yùn)行參數(shù)的數(shù)值將增加。
基于此,在本申請實(shí)施例中,根據(jù)所述業(yè)務(wù)類型、運(yùn)行參數(shù),確定所述服務(wù)器處理所述業(yè)務(wù)請求的承載能力預(yù)估值,具體包括:確定所述業(yè)務(wù)類型所對應(yīng)的各運(yùn)行參數(shù)增量,根據(jù)確定出的各運(yùn)行參數(shù)增量以及獲取到的所述服務(wù)器自身當(dāng)前的各運(yùn)行參數(shù),確定各運(yùn)行參數(shù)估值,根據(jù)所述各運(yùn)行參數(shù)估值,以 及預(yù)先針對各運(yùn)行參數(shù)設(shè)定的權(quán)重,確定各運(yùn)行參數(shù)估值的加權(quán)和值,作為所述服務(wù)器處理所述業(yè)務(wù)請求的承載能力預(yù)估值。
上述過程具體可以采用下述公式:
其中,y表示承載能力預(yù)估值;
ai表示服務(wù)器處理新增的業(yè)務(wù)請求后不同的運(yùn)行參數(shù)估值,具體如:cpu占用率、內(nèi)存使用量、線程使用量等;
ωi為分別與不同的運(yùn)行參數(shù)相對應(yīng)的權(quán)重;
n表示運(yùn)行參數(shù)的數(shù)量。
需要說明的是,在上述公式中,運(yùn)行參數(shù)估值ai是一種預(yù)估值,反映了服務(wù)器處理新增的業(yè)務(wù)請求后,各運(yùn)行參數(shù)可能的取值。也就是說,此時(shí)服務(wù)器并未針對新增的業(yè)務(wù)請求進(jìn)行實(shí)際處理。正如前述內(nèi)容,運(yùn)行參數(shù)估值ai由服務(wù)器當(dāng)前的運(yùn)行參數(shù)以及處理該業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)增量確定。
具體而言,運(yùn)行參數(shù)估值ai的確定可以采用下述公式:
αi=α′i+δαi
其中,α′i為服務(wù)器當(dāng)前的運(yùn)行參數(shù);
δαi為運(yùn)行參數(shù)增量。
需要說明的是,運(yùn)行參數(shù)增量δαi表示了若服務(wù)器處理新增的業(yè)務(wù)請求后,其當(dāng)前的運(yùn)行參數(shù)的變化量。
在本申請實(shí)施例中,對于運(yùn)行參數(shù)增量δαi而言,不同類型的業(yè)務(wù)請求所對應(yīng)的運(yùn)行參數(shù)增量δαi并不相同,這是因?yàn)椋悍?wù)器在處理不同類型的業(yè)務(wù)請求時(shí),所消耗的處理資源的可能并不相同,例如,某些業(yè)務(wù)請求,只占用一個(gè)線程;而另一些業(yè)務(wù)請求,就要占用兩個(gè)或多個(gè)線程。從而,運(yùn)行參數(shù)增量δαi將根據(jù)業(yè)務(wù)請求所對應(yīng)的業(yè)務(wù)類型的不同而不同。
考慮到在實(shí)際應(yīng)用中,服務(wù)器在歷史上處理過各種類型的業(yè)務(wù)請求(業(yè)務(wù) 請求的類型與服務(wù)器所提供的業(yè)務(wù)服務(wù)的類型相匹配),在服務(wù)器處理每一種類型的業(yè)務(wù)請求后,服務(wù)器的各運(yùn)行參數(shù)都會(huì)發(fā)生變化,因此,可以根據(jù)歷史上服務(wù)器歷次處理不同類型的業(yè)務(wù)請求時(shí)各運(yùn)行參數(shù)的歷史變化,來估測當(dāng)前時(shí)刻,服務(wù)器對新增的業(yè)務(wù)請求進(jìn)行處理時(shí)各運(yùn)行參數(shù)可能的變化量。
基于此,對于本申請實(shí)施例的上述步驟中,確定所述業(yè)務(wù)類型所對應(yīng)的各運(yùn)行參數(shù)增量,其具體包括:針對每一運(yùn)行參數(shù),獲取所述服務(wù)器在設(shè)定的歷史時(shí)間內(nèi),每一次處理屬于所述業(yè)務(wù)類型的業(yè)務(wù)請求時(shí),該運(yùn)行參數(shù)的歷史變化量,在設(shè)定的歷史時(shí)間內(nèi),確定所述歷史變化量的均值,將所述均值確定為該運(yùn)行參數(shù)增量。
例如:假設(shè)在本示例中,服務(wù)器中的運(yùn)行參數(shù)包括:占用的線程數(shù)量、cpu占用率。
同時(shí)假設(shè),在設(shè)定的歷史時(shí)間內(nèi),服務(wù)器處理了1000個(gè)支付請求,服務(wù)器在處理每個(gè)支付請求時(shí),其自身的各運(yùn)行參數(shù)的歷史變化量如下表1所示。
表1
表1中示出了服務(wù)器在歷史上所處理的1000個(gè)支付請求中,每個(gè)支付請求所對應(yīng)的運(yùn)行參數(shù)的歷史變化量。假設(shè)在本示例中,經(jīng)過均值處理后,每一個(gè)支付請求需要占用cpu均值為0.5%,需要占用的線程數(shù)量的均值為1。從就可以認(rèn)為,該服務(wù)器在處理支付類的請求時(shí),每個(gè)支付請求的平均cpu占用率就為0.5%,平均占用的線程數(shù)量就為1。
如果以a1代表cpu的占用率,以a2代表占用的線程數(shù)量,那么,在本示 例中,δα1就為0.5%,δα2就為1。
另需要說明的是,對于上述公式中的權(quán)重而言,在本申請實(shí)施例中的一種方式下,也可以根據(jù)業(yè)務(wù)請求的業(yè)務(wù)類型進(jìn)行設(shè)定,換言之,不同類型的業(yè)務(wù)請求所對應(yīng)各運(yùn)行參數(shù)的權(quán)重可不相同,這是因?yàn)椋涸趯?shí)際應(yīng)用中,服務(wù)器在處理不同類型的業(yè)務(wù)請求時(shí),所消耗的處理資源并不相同,某些業(yè)務(wù)請求可能占用的線程數(shù)量較多,而另一些業(yè)務(wù)請求消耗的cpu占用率較高。所以,在本申請中,可針對不同類型的業(yè)務(wù)請求設(shè)置不同的運(yùn)行參數(shù)的權(quán)重,當(dāng)然,具體的權(quán)重值也可以根據(jù)歷史數(shù)據(jù)而得出,這里并不構(gòu)成對本申請的限定。
通過上述內(nèi)容,便可以針對任一業(yè)務(wù)請求,預(yù)估出服務(wù)器處理該業(yè)務(wù)請求后服務(wù)器的承載能力預(yù)估值。從而,便可以進(jìn)一步地確定出應(yīng)該為業(yè)務(wù)請求分配的超時(shí)時(shí)間,具體而言,在本申請實(shí)施例中,在所述承載能力預(yù)估值的上限和下限之間設(shè)有若干承載能力預(yù)估值區(qū)間,上述步驟s104,根據(jù)所述承載能力預(yù)估值,確定所述業(yè)務(wù)請求對應(yīng)的超時(shí)時(shí)間,具體包括:確定所述承載能力預(yù)估值所落入的承載能力預(yù)估值區(qū)間,確定該承載能力預(yù)估值區(qū)間所對應(yīng)的超時(shí)時(shí)間,將所述承載能力預(yù)估值區(qū)間所對應(yīng)的超時(shí)時(shí)間確定為所述承載能力預(yù)估值對應(yīng)的超時(shí)時(shí)間。
在本申請實(shí)施例中的一種方式下,服務(wù)器的承載能力預(yù)估值可在1~100之間取值,也就是說,在這種方式下,承載能力預(yù)估值的下限為1,上限為100。那么,在1~100之間,就可以設(shè)置若干區(qū)間,如:[1,5]、[6,10]……等等;或者[1,40]、[41,59]……等等。區(qū)間的分檔通常會(huì)根據(jù)服務(wù)器的負(fù)載階段進(jìn)行設(shè)置,這里并不構(gòu)成對本申請的限定。
每一個(gè)承載能力預(yù)估值區(qū)間都對應(yīng)著相應(yīng)的超時(shí)時(shí)間,如:區(qū)間[1,5]對應(yīng)的超時(shí)時(shí)間為20s;區(qū)間[41,59]對應(yīng)的超時(shí)時(shí)間為22s等。當(dāng)然,在本申請實(shí)施例中,承載能力預(yù)估值區(qū)間也可以對應(yīng)超時(shí)時(shí)間范圍,如:區(qū)間[41,59]對應(yīng)的超時(shí)時(shí)間范圍為15s~22s。那么,在實(shí)際確定承載能力預(yù)估值對應(yīng)的超時(shí)時(shí)間時(shí),就可以從承載能力預(yù)估值區(qū)間對應(yīng)的超時(shí)時(shí)間范圍內(nèi)任意選擇出一 個(gè)超時(shí)時(shí)間,作為業(yè)務(wù)請求的超時(shí)時(shí)間。這里并不構(gòu)成對本申請的限定。
但在實(shí)際應(yīng)用中,隨著服務(wù)器工作負(fù)荷的不斷增加,服務(wù)器的處理能力將逐漸下降,當(dāng)服務(wù)器處于高負(fù)載的情況下,處理業(yè)務(wù)請求的速度將明顯降低,而如果此時(shí),仍有大量的業(yè)務(wù)請求處于等待狀態(tài),服務(wù)器將不斷工作,甚至?xí)霈F(xiàn)宕機(jī)的情況,而一旦服務(wù)器宕機(jī),將嚴(yán)重影響對業(yè)務(wù)請求的處理。
所以,為了避免出現(xiàn)服務(wù)器出現(xiàn)宕機(jī)的情況,在本申請實(shí)施例中,在所述承載能力預(yù)估值上限和下限之間還設(shè)有承載閥值,其中,不超過所述承載閥值的承載能力預(yù)估值區(qū)間所對應(yīng)的超時(shí)時(shí)間遞增,也即,隨所述承載能力預(yù)估值的增加而增加;而超過所述承載閥值的承載能力預(yù)估值區(qū)間所對應(yīng)的超時(shí)時(shí)間遞減,也即,隨所述承載能力預(yù)估值的增加而減少。
可以認(rèn)為,承載閥值是服務(wù)器處理能力的轉(zhuǎn)折點(diǎn),一旦服務(wù)器的運(yùn)行狀態(tài)超過其承載閥值,那么,服務(wù)器的處理效率將出現(xiàn)明顯下降。從而可見,如果服務(wù)器的承載能力預(yù)估值超過了其承載閥值,那么,將縮短業(yè)務(wù)請求的超時(shí)時(shí)間,使得業(yè)務(wù)請求在等待一定的時(shí)間后,服務(wù)器對業(yè)務(wù)請求發(fā)出失敗(重試)響應(yīng),或變更第三方服務(wù)器對業(yè)務(wù)請求進(jìn)行處理,這樣的方式能夠緩解服務(wù)器所面臨的訪問壓力。而對于未達(dá)到承載閥值的狀態(tài),就表明服務(wù)器的運(yùn)行狀態(tài)良好,可以盡可能多的處理業(yè)務(wù)請求,從而,將業(yè)務(wù)請求對應(yīng)的超時(shí)時(shí)間延長,使得服務(wù)器有時(shí)間充分處理各業(yè)務(wù)請求。
正因?yàn)榇耍怀^所述承載閥值的承載能力預(yù)估值區(qū)間所對應(yīng)的超時(shí)時(shí)間遞增,超過所述承載閥值的承載能力預(yù)估值區(qū)間所對應(yīng)的超時(shí)時(shí)間遞減。
當(dāng)然,在實(shí)際應(yīng)用場景下,考慮到超時(shí)時(shí)間包括連接超時(shí)時(shí)間和處理超時(shí)時(shí)間,而連接超時(shí)時(shí)間可能會(huì)受到網(wǎng)絡(luò)環(huán)境的干擾(如:網(wǎng)絡(luò)抖動(dòng),其中,網(wǎng)絡(luò)抖動(dòng)是指受網(wǎng)絡(luò)環(huán)境的影響而產(chǎn)生的連接超時(shí)時(shí)間的突然變化),那么,在本申請實(shí)施例中,上述的超時(shí)時(shí)間通常大于或等于網(wǎng)絡(luò)抖動(dòng)的干擾時(shí)間+處理超時(shí)時(shí)間。其中,網(wǎng)絡(luò)抖動(dòng)的干擾時(shí)間可以由服務(wù)器根據(jù)獲取到的網(wǎng)絡(luò)環(huán)境參數(shù)來確定。這里并不構(gòu)成對本申請的限定。
以上為本申請實(shí)施例提供的業(yè)務(wù)請求的響應(yīng)方法,基于同樣的思路,本申請實(shí)施例還提供一種業(yè)務(wù)請求的響應(yīng)裝置,如圖2所示。
在圖2中,所述業(yè)務(wù)請求的響應(yīng)裝置包括:接收模塊201、獲取模塊202、預(yù)估值模塊203、超時(shí)時(shí)間模塊204以及響應(yīng)模塊205,其中,
接收模塊201,用于接收業(yè)務(wù)請求。
獲取模塊202,用于獲取服務(wù)器自身當(dāng)前的各運(yùn)行參數(shù)。
預(yù)估值模塊203,用于根據(jù)所述業(yè)務(wù)類型、各運(yùn)行參數(shù),確定所述服務(wù)器處理所述業(yè)務(wù)請求的承載能力預(yù)估值。
超時(shí)時(shí)間模塊204,用于根據(jù)所述承載能力預(yù)估值,確定所述業(yè)務(wù)請求對應(yīng)的超時(shí)時(shí)間。
處理模塊205,用于根據(jù)所述超時(shí)時(shí)間,對所述業(yè)務(wù)請求進(jìn)行處理。
在本申請實(shí)施例中,上述裝置中還包括:確定模塊206,用于確定所述業(yè)務(wù)請求所屬的業(yè)務(wù)類型。
在確定模塊206的作用下,預(yù)估值模塊203,具體用于確定所述業(yè)務(wù)類型所對應(yīng)的各運(yùn)行參數(shù)增量,根據(jù)確定出的各運(yùn)行參數(shù)增量以及獲取到的所述服務(wù)器自身當(dāng)前的各運(yùn)行參數(shù),確定各運(yùn)行參數(shù)估值,根據(jù)所述各運(yùn)行參數(shù)估值,以及預(yù)先針對各運(yùn)行參數(shù)設(shè)定的權(quán)重,確定各運(yùn)行參數(shù)估值的加權(quán)和值,作為所述服務(wù)器處理所述業(yè)務(wù)請求的承載能力預(yù)估值。
更為具體地,預(yù)估值模塊203,用于針對每一運(yùn)行參數(shù),獲取所述服務(wù)器在設(shè)定的歷史時(shí)間內(nèi),每一次處理屬于所述業(yè)務(wù)類型的業(yè)務(wù)請求時(shí),該運(yùn)行參數(shù)的歷史變化量,在設(shè)定的歷史時(shí)間內(nèi),確定所述歷史變化量的均值,將所述均值確定為該運(yùn)行參數(shù)增量。
在本申請實(shí)施例中,在所述承載能力預(yù)估值的上限和下限之間設(shè)有若干承載能力預(yù)估值區(qū)間,在此基礎(chǔ)上,超時(shí)時(shí)間模塊204,具體用于確定所述承載能力預(yù)估值所落入的承載能力預(yù)估值區(qū)間,確定該承載能力預(yù)估值區(qū)間所對應(yīng)的超時(shí)時(shí)間,將所述承載能力預(yù)估值區(qū)間所對應(yīng)的超時(shí)時(shí)間確定為所述承載能 力預(yù)估值對應(yīng)的超時(shí)時(shí)間。
另外,在所述承載能力預(yù)估值上限和下限之間還設(shè)有承載閥值,其中,不超過所述承載閥值的承載能力預(yù)估值區(qū)間所對應(yīng)的超時(shí)時(shí)間,隨所述承載能力預(yù)估值的增加而增加;超過所述承載閥值的承載能力預(yù)估值區(qū)間所對應(yīng)的超時(shí)時(shí)間,隨所述承載能力預(yù)估值的增加而減少。
在本申請實(shí)施例中,上述的運(yùn)行參數(shù)包括但不限于:中央處理器cpu的占用率、內(nèi)存使用量、線程占用量等。
另外,對于本申請實(shí)施例中的上述方法和裝置而言,在實(shí)際應(yīng)用中,可由服務(wù)器中的硬件元件實(shí)現(xiàn),具體而言,如圖3所示,為本申請實(shí)施例中所提供的一種用于實(shí)現(xiàn)業(yè)務(wù)請求響應(yīng)方法的服務(wù)器內(nèi)部的硬件結(jié)構(gòu),其中包括:
通信接口,用于傳輸包含有業(yè)務(wù)請求和/或處理結(jié)果的數(shù)據(jù)。
存儲(chǔ)器,用于存儲(chǔ)針對業(yè)務(wù)請求進(jìn)行響應(yīng)處理的計(jì)算機(jī)程序。
處理器,用于在接收到了通信接口所傳輸?shù)陌袠I(yè)務(wù)請求的數(shù)據(jù)后,從存儲(chǔ)器中調(diào)用上述計(jì)算機(jī)程序并運(yùn)行,通過運(yùn)行該計(jì)算機(jī)程序,執(zhí)行下述步驟:
獲取所述服務(wù)器自身當(dāng)前的各運(yùn)行參數(shù),根據(jù)所述各運(yùn)行參數(shù),確定所述服務(wù)器處理所述業(yè)務(wù)請求的承載能力預(yù)估值,根據(jù)所述承載能力預(yù)估值,確定所述業(yè)務(wù)請求對應(yīng)的超時(shí)時(shí)間,根據(jù)所述超時(shí)時(shí)間,對所述業(yè)務(wù)請求進(jìn)行處理,將處理后的結(jié)果以數(shù)據(jù)形式通過通信接口傳輸。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、 靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
以上所述僅為本申請的實(shí)施例而已,并不用于限制本申請。對于本領(lǐng)域技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的權(quán)利要求范圍之內(nèi)。