本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種異常處理方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)金融和電子商務(wù)的發(fā)展,人們越來越多的利用網(wǎng)絡(luò)進(jìn)行交易支付和借貸,通常在借貸和支付等業(yè)務(wù)進(jìn)行的過程中,風(fēng)險(xiǎn)控制評估就顯得非常關(guān)鍵。因此風(fēng)控系統(tǒng)應(yīng)運(yùn)而生?,F(xiàn)有技術(shù)中,業(yè)務(wù)方可采用同步阻塞調(diào)用的方式調(diào)用風(fēng)控系統(tǒng)。在調(diào)用過程中,運(yùn)行風(fēng)控系統(tǒng)的服務(wù)器為被調(diào)用方,發(fā)送調(diào)用指令的客戶端為調(diào)用方。風(fēng)控系統(tǒng)中保存有業(yè)務(wù)與風(fēng)控規(guī)則之間的對應(yīng)關(guān)系。風(fēng)控系統(tǒng)根據(jù)風(fēng)控規(guī)則對業(yè)務(wù)進(jìn)行風(fēng)險(xiǎn)評估,并將評估結(jié)果反饋給調(diào)用方。在應(yīng)用過程中,首先,風(fēng)控系統(tǒng)獲取客戶端發(fā)送的針對一業(yè)務(wù)的應(yīng)用程序接口(applicationprogramminginterface,api)調(diào)用指令,api調(diào)用指令中包括該業(yè)務(wù)的業(yè)務(wù)標(biāo)識;然后根據(jù)業(yè)務(wù)標(biāo)識查找該業(yè)務(wù)對應(yīng)的風(fēng)控規(guī)則集;根據(jù)查找到的風(fēng)控規(guī)則對該業(yè)務(wù)進(jìn)行風(fēng)險(xiǎn)評估;然后將評估結(jié)果反饋給客戶端,以使客戶端根據(jù)評估結(jié)果確定是否繼續(xù)執(zhí)行該業(yè)務(wù),保證業(yè)務(wù)在無風(fēng)險(xiǎn)或者低風(fēng)險(xiǎn)條件下進(jìn)行。
現(xiàn)有技術(shù)中,若客戶端采用同步阻塞調(diào)用的方式調(diào)用風(fēng)控系統(tǒng),在風(fēng)控系統(tǒng)被調(diào)用的過程中,客戶端只有接收到風(fēng)控系統(tǒng)反饋的評估結(jié)果才能繼續(xù)執(zhí)行業(yè)務(wù)。當(dāng)風(fēng)控系統(tǒng)出現(xiàn)調(diào)用超時(shí)或請求錯(cuò)誤等異常時(shí),無法向客戶端反饋評估結(jié)果,這時(shí)客戶端由于接收不到評估結(jié)果而不能繼續(xù)執(zhí)行業(yè)務(wù),出現(xiàn)業(yè)務(wù)中斷的現(xiàn)象。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例公開了一種異常處理方法及裝置,以降低出現(xiàn)業(yè)務(wù)中斷的概率。
為達(dá)到上述目的,本發(fā)明實(shí)施例公開了一種異常處理方法,應(yīng)用于服務(wù)器,包括:
接收客戶端執(zhí)行目標(biāo)業(yè)務(wù)過程中發(fā)送的應(yīng)用程序接口api調(diào)用指令;
響應(yīng)所述api調(diào)用指令,并檢測響應(yīng)所述api調(diào)用指令的過程中是否存在異常;
若存在,將目標(biāo)關(guān)系存入數(shù)據(jù)庫,其中,所述目標(biāo)關(guān)系為:目標(biāo)異常、所述客戶端和所述目標(biāo)業(yè)務(wù)三者之間的關(guān)系;所述目標(biāo)異常為:檢測到的異常;
判斷所述數(shù)據(jù)庫中記錄所述目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值;
若大于,針對所述客戶端降低所述目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別,向所述客戶端反饋評估結(jié)果。
可選地,所述判斷所述數(shù)據(jù)庫中記錄所述目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值,包括:
判斷所述數(shù)據(jù)庫中記錄的、預(yù)設(shè)時(shí)間段內(nèi)所述目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值。
可選地,所述檢測響應(yīng)所述api調(diào)用指令的過程中是否存在異常,包括:
檢測響應(yīng)所述api調(diào)用指令的過程中是否出現(xiàn)預(yù)設(shè)異常,如果是,則判定響應(yīng)所述api調(diào)用指令的過程中存在異常,如果否,則判定響應(yīng)所述api調(diào)用指令的過程中不存在異常。
可選地,在檢測到響應(yīng)所述api調(diào)用指令的過程中存在異常之后,所述方法還包括:
向所述客戶端發(fā)送針對所述目標(biāo)異常的報(bào)警信息。
可選地,述將目標(biāo)關(guān)系存入數(shù)據(jù)庫,包括:
將所述目標(biāo)異常的信息存儲為預(yù)設(shè)格式的目標(biāo)消息;
根據(jù)所述目標(biāo)消息,通過預(yù)設(shè)框架生成目標(biāo)關(guān)系;
將所生成的目標(biāo)關(guān)系按照時(shí)間粒度存儲至數(shù)據(jù)庫。
為達(dá)到上述目的,本發(fā)明實(shí)施例還公開了一種異常處理裝置,應(yīng)用于服務(wù)器,包括:
接收模塊,用于接收客戶端執(zhí)行目標(biāo)業(yè)務(wù)過程中發(fā)送的應(yīng)用程序接口api調(diào)用指令;
響應(yīng)模塊,用于響應(yīng)所述api調(diào)用指令,并檢測響應(yīng)所述api調(diào)用指令的過程中是否存在異常,若存在,觸發(fā)存儲模塊;
所述存儲模塊,用于將目標(biāo)關(guān)系存入數(shù)據(jù)庫,其中,所述目標(biāo)關(guān)系為:目標(biāo)異常、所述客戶端和所述目標(biāo)業(yè)務(wù)三者之間的關(guān)系;所述目標(biāo)異常為:檢測到的異常;
判斷模塊,用于判斷所述數(shù)據(jù)庫中記錄所述目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值,若大于,觸發(fā)降級模塊;
所述降級模塊,用于針對所述客戶端降低所述目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別,向所述客戶端反饋評估結(jié)果。
可選地,所述判斷模塊,具體用于:
判斷所述數(shù)據(jù)庫中記錄的、預(yù)設(shè)時(shí)間段內(nèi)所述目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值。
可選地,所述響應(yīng)模塊具體用于:
檢測響應(yīng)所述api調(diào)用指令的過程中是否出現(xiàn)預(yù)設(shè)異常,如果是,則判定響應(yīng)所述api調(diào)用指令的過程中存在異常,如果否,則判定響應(yīng)所述api調(diào)用指令的過程中不存在異常。
可選地,所述裝置還包括:
發(fā)送模塊,用于向所述客戶端發(fā)送針對所述目標(biāo)異常的報(bào)警信息。
可選地,所述存儲模塊具體用于:
將所述目標(biāo)異常的信息存儲為預(yù)設(shè)格式的目標(biāo)消息;
根據(jù)所述目標(biāo)消息,通過預(yù)設(shè)框架生成目標(biāo)關(guān)系;
將所生成的目標(biāo)關(guān)系按照時(shí)間粒度存儲至數(shù)據(jù)庫。
本發(fā)明實(shí)施例提供了一種異常處理方法及裝置,應(yīng)用于服務(wù)器,方法包括:接收客戶端執(zhí)行目標(biāo)業(yè)務(wù)過程中發(fā)送的應(yīng)用程序接口api調(diào)用指令;響應(yīng)所述api調(diào)用指令,并檢測響應(yīng)所述api調(diào)用指令的過程中是否存在異常;在響應(yīng)api調(diào)用指令的過程中存在異常時(shí),判斷客戶端在執(zhí)行的目標(biāo)業(yè)務(wù)的過程中出現(xiàn)的檢測到的異常的數(shù)量是否大于預(yù)設(shè)數(shù)值,若大于,降低客戶端執(zhí)行的目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別,向客戶端反饋評估結(jié)果。與現(xiàn)有技術(shù)相比,通過本發(fā)明實(shí)施例所提供的方案,當(dāng)風(fēng)控系統(tǒng)出現(xiàn)調(diào)用超時(shí)或請求錯(cuò)誤等異常時(shí),可以向客戶端反饋評估結(jié)果,以使客戶端可以繼續(xù)執(zhí)行業(yè)務(wù),進(jìn)而可以降低出現(xiàn)業(yè)務(wù)中斷的概率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例所提供的一種異常處理方法的流程圖;
圖2為本發(fā)明實(shí)施例所提供的一種異常處理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
參見圖1,圖1為本發(fā)明實(shí)施例所提供的一種異常處理方法的流程圖,應(yīng)用于服務(wù)器,該方法包括以下步驟:
s110,接收客戶端執(zhí)行目標(biāo)業(yè)務(wù)過程中發(fā)送的應(yīng)用程序接口(applicationprogramminginterface,api)調(diào)用指令。
具體地,客戶端在執(zhí)行目標(biāo)業(yè)務(wù)的過程中會發(fā)送針對該目標(biāo)業(yè)務(wù)的api調(diào)用指令,該api調(diào)用指令中可以包括該業(yè)務(wù)的業(yè)務(wù)標(biāo)識。服務(wù)器接收客戶端發(fā)送的api調(diào)用指令。
例如,客戶端執(zhí)行微信支付業(yè)務(wù)的過程中,會發(fā)送針對微信支付業(yè)務(wù)的調(diào)用風(fēng)險(xiǎn)控制系統(tǒng)的api調(diào)用指令。服務(wù)器接收客戶端發(fā)送的調(diào)用風(fēng)險(xiǎn)控制系統(tǒng)的api調(diào)用指令。
s120,響應(yīng)所述api調(diào)用指令,并檢測響應(yīng)所述api調(diào)用指令的過程中是否存在異常,若存在,執(zhí)行s130。
服務(wù)器在接收到api調(diào)用指令后,會響應(yīng)該api調(diào)用指令,執(zhí)行該api調(diào)用指令對應(yīng)的程序。響應(yīng)api調(diào)用指令的過程中,由于api調(diào)用指令錯(cuò)誤、服務(wù)器響應(yīng)超時(shí)等原因可能會存在響應(yīng)api調(diào)用指令失敗的情況。為此在響應(yīng)上述api調(diào)用指令的過程中,可以檢測執(zhí)行該api調(diào)用指令對應(yīng)的程序的過程中是否存在異常,若存在,執(zhí)行s130,將檢測到的異常、客戶端和目標(biāo)業(yè)務(wù)三者之間的關(guān)系存入數(shù)據(jù)庫。
例如,假設(shè)客戶端在執(zhí)行微信支付業(yè)務(wù)中調(diào)用風(fēng)險(xiǎn)控制系統(tǒng),則在api調(diào)用指令中可以包括微信支付業(yè)務(wù)的業(yè)務(wù)標(biāo)識。服務(wù)器中可以存儲有業(yè)務(wù)標(biāo)識與風(fēng)險(xiǎn)控制規(guī)則之間的對應(yīng)關(guān)系。服務(wù)器接收到客戶端發(fā)送的api調(diào)用指令后,會根據(jù)api調(diào)用指令中的業(yè)務(wù)標(biāo)識查找微信支付業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則。之后根據(jù)查找到的風(fēng)險(xiǎn)控制規(guī)則以及api調(diào)用指令包括的參數(shù)對微信支付業(yè)務(wù)進(jìn)行風(fēng)險(xiǎn)評估,并檢測風(fēng)險(xiǎn)評估的過程中是否存在異常,若存在,執(zhí)行s130,將檢測到的異常、客戶端和目標(biāo)業(yè)務(wù)三者之間的關(guān)系存入數(shù)據(jù)庫。
具體地,檢測響應(yīng)api調(diào)用指令的過程中是否存在異常,可以包括:
檢測響應(yīng)所述api調(diào)用指令的過程中是否出現(xiàn)預(yù)設(shè)異常,如果是,則判定響應(yīng)所述api調(diào)用指令的過程中存在異常,如果否,則判定響應(yīng)所述api調(diào)用指令的過程中不存在異常。
其中,預(yù)設(shè)異??梢詾橛脩糇远x異常或者系統(tǒng)默認(rèn)異常。預(yù)設(shè)異常主要是指導(dǎo)致服務(wù)器不能繼續(xù)響應(yīng)api調(diào)用指令的異常。例如,預(yù)設(shè)異??梢园ǎ篴pi調(diào)用指令錯(cuò)誤、網(wǎng)絡(luò)連接失敗、api調(diào)用指令對應(yīng)的程序代碼錯(cuò)誤、響應(yīng)超時(shí)等。
具體地,可以基于spring框架,檢測響應(yīng)api調(diào)用指令的過程中是否出現(xiàn)預(yù)設(shè)異常。需要說明的是,spring從3.2版本開始提供一個(gè)新的注解@controlleradvice,該注解可以理解為控制器增強(qiáng),該注解可以把它注解內(nèi)部使用的例如@exceptionhandler、@initbinder、@modelattribute等注解的方法應(yīng)用到@requestmapping注解的方法上。其中@exceptionhandler注解可以使用springmvc提供的數(shù)據(jù)綁定,比如注入httpservletrequest等,還可以接收一個(gè)當(dāng)前拋出的throwable對象。在實(shí)現(xiàn)方式中,可以將@requestmapping注解的方法作為api調(diào)用的方法。然后在@exceptionhandler注解中,同時(shí)綁定參數(shù)httpservletrequest,httpservletresponse及預(yù)設(shè)異常,其中預(yù)設(shè)異??梢允菢I(yè)務(wù)自定義的異常也可以是常見java異常。此時(shí),@exceptionhandler注解的作用就是當(dāng)出現(xiàn)預(yù)設(shè)異常時(shí)進(jìn)行處理,即出現(xiàn)預(yù)設(shè)異常時(shí),判定響應(yīng)api調(diào)用指令的過程中存在異常。
s130,將目標(biāo)關(guān)系存入數(shù)據(jù)庫,其中,所述目標(biāo)關(guān)系為:目標(biāo)異常、所述客戶端和所述目標(biāo)業(yè)務(wù)三者之間的關(guān)系;所述目標(biāo)異常為:檢測到的異常。
服務(wù)器在檢測到響應(yīng)api調(diào)用指令的過程中存在異常后,會將目標(biāo)異常、客戶端以及目標(biāo)業(yè)務(wù)三者之間的對應(yīng)關(guān)系存入數(shù)據(jù)庫,以便后續(xù)對目標(biāo)關(guān)系的數(shù)量進(jìn)行統(tǒng)計(jì),并將統(tǒng)計(jì)的目標(biāo)關(guān)系的數(shù)量與預(yù)設(shè)數(shù)值的進(jìn)行對比,確定是否針對客戶端降低目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別。
具體地,數(shù)據(jù)庫中存儲的目標(biāo)異常、客戶端以及目標(biāo)業(yè)務(wù)三者之間的對應(yīng)關(guān)系可以如表1所示:
表1
具體地,將目標(biāo)關(guān)系存入數(shù)據(jù)庫的過程,可以包括:
將所述目標(biāo)異常的信息存儲為預(yù)設(shè)格式的目標(biāo)消息;根據(jù)所述目標(biāo)消息,通過預(yù)設(shè)框架生成目標(biāo)關(guān)系;將所生成的目標(biāo)關(guān)系按照時(shí)間粒度存儲至數(shù)據(jù)庫。
預(yù)設(shè)格式的目標(biāo)消息可以為:kafka消息、activemq消息等。
預(yù)設(shè)框架可以為:spark框架、flink框架、stom框架等。
服務(wù)器在生成目標(biāo)關(guān)系后,將生成的目標(biāo)關(guān)系按照時(shí)間粒度存儲至數(shù)據(jù)庫中,即將目標(biāo)關(guān)系與時(shí)間之間的對應(yīng)關(guān)系存儲至數(shù)據(jù)庫中。通過將目標(biāo)關(guān)系按照時(shí)間粒度存儲至數(shù)據(jù)庫,有助于對數(shù)據(jù)庫中記錄的、預(yù)設(shè)時(shí)間段內(nèi)的目標(biāo)關(guān)系的數(shù)量進(jìn)行統(tǒng)計(jì),進(jìn)而可以根據(jù)統(tǒng)計(jì)的預(yù)設(shè)時(shí)間段內(nèi)的目標(biāo)關(guān)系的數(shù)量與預(yù)設(shè)數(shù)值的進(jìn)行對比,確定是否針對客戶端降低目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別。
在一種實(shí)現(xiàn)方式中,kafka是一個(gè)分布式的、高吞吐量的消息系統(tǒng)。spark是一個(gè)基于內(nèi)存計(jì)算的開源的框架,且對數(shù)據(jù)的分析比較快速,是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。因此,可以將kafka消息作為預(yù)設(shè)格式的目標(biāo)消息,將spark框架作為預(yù)設(shè)框架,對目標(biāo)消息進(jìn)行分析,生成目標(biāo)關(guān)系。通過將kafka消息和spark框架結(jié)合,可以構(gòu)成一個(gè)近實(shí)時(shí)數(shù)據(jù)處理系統(tǒng),進(jìn)而可以實(shí)時(shí)對檢測到的異常的信息進(jìn)行分析。
具體地,服務(wù)器可以將檢測到的異常的信息發(fā)送給kafka隊(duì)列,形成kafka消息,以便spark框架近實(shí)時(shí)地對該消息進(jìn)行處理,生成目標(biāo)異常、目標(biāo)業(yè)務(wù)以及客戶端三者之間的對應(yīng)關(guān)系。并將生成的對應(yīng)關(guān)系按照時(shí)間粒度存儲至數(shù)據(jù)庫中。需要說明的是,發(fā)送給kafka隊(duì)列的消息中可以包括檢測到的異常的標(biāo)識、檢測到的異常出現(xiàn)時(shí)間點(diǎn)等信息。
更為具體地,按照時(shí)間粒度存儲至數(shù)據(jù)庫中的對應(yīng)關(guān)系可以如表2所示:
表2
可以理解,服務(wù)器還可以將數(shù)據(jù)庫中存儲的目標(biāo)關(guān)系制作成異常情況展示圖,并將其反饋給客戶端,以便用戶查看檢測到的異常。
s140,判斷所述數(shù)據(jù)庫中記錄所述目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值,若大于,執(zhí)行s150。
當(dāng)服務(wù)器把檢測到目標(biāo)異常后的目標(biāo)關(guān)系存儲至數(shù)據(jù)庫中后,判斷數(shù)據(jù)庫中記錄的目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值,如果目標(biāo)關(guān)系的數(shù)量發(fā)于預(yù)設(shè)數(shù)值時(shí),表明客戶端執(zhí)行目標(biāo)業(yè)務(wù)的過程中出現(xiàn)了多次目標(biāo)異常,且由于目標(biāo)異常的存在,服務(wù)器無法向客戶端反饋評估結(jié)果,進(jìn)而導(dǎo)致目標(biāo)業(yè)務(wù)無法繼續(xù)執(zhí)行。因此,當(dāng)目標(biāo)關(guān)系的數(shù)量大于預(yù)設(shè)數(shù)值時(shí),針對發(fā)送api調(diào)用指令的客戶端,降低其執(zhí)行的目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別,向該客戶端反饋評估結(jié)果。其中,目標(biāo)關(guān)系為:目標(biāo)異常、客戶端和目標(biāo)業(yè)務(wù)三者之間的關(guān)系;目標(biāo)異常為:檢測到的異常。
需要說明的是,預(yù)設(shè)數(shù)值大于1。用戶可以根據(jù)經(jīng)驗(yàn)或?qū)嶒?yàn)或設(shè)備運(yùn)行條件確定預(yù)設(shè)數(shù)值??梢岳斫?,響應(yīng)api調(diào)用指令的過程中出現(xiàn)的一次異常,可能是偶然因素造成的,通過設(shè)定預(yù)設(shè)數(shù)值,可以避免因?yàn)榕既灰蛩囟苯咏档惋L(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別。
具體地,判斷數(shù)據(jù)庫中記錄目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值的過程,可以包括:
判斷數(shù)據(jù)庫中記錄的、預(yù)設(shè)時(shí)間段內(nèi)目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值。
預(yù)設(shè)時(shí)間段為預(yù)先設(shè)定的距離目標(biāo)異常時(shí)間點(diǎn)之前的一段時(shí)間,用戶可以根據(jù)實(shí)際經(jīng)驗(yàn)或設(shè)備運(yùn)行條件設(shè)定,例如預(yù)設(shè)時(shí)間段可以為1分鐘、10分鐘、30分鐘、1小時(shí)等。
舉例而言,參見表2,假設(shè)預(yù)設(shè)時(shí)間段為5分鐘,時(shí)間點(diǎn)2為s120中檢測到異常的時(shí)間點(diǎn),時(shí)間點(diǎn)1和時(shí)間點(diǎn)2間隔時(shí)間為3分鐘,客戶端a為發(fā)送api調(diào)用指令的客戶端,且執(zhí)行業(yè)務(wù)1,異常a為監(jiān)測到的異常。則可以確定在數(shù)據(jù)庫中記錄的、預(yù)設(shè)時(shí)間段內(nèi)的目標(biāo)關(guān)系的數(shù)量為2。然后,服務(wù)器判斷目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值。
通過預(yù)設(shè)時(shí)間段,可以提高目標(biāo)關(guān)系之間的相關(guān)度,進(jìn)而可以進(jìn)一步避免因?yàn)榕既灰蛩囟苯咏档惋L(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別,降低目標(biāo)業(yè)務(wù)的風(fēng)險(xiǎn)性。
s150,針對所述客戶端降低所述目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別,向所述客戶端反饋評估結(jié)果。
當(dāng)數(shù)據(jù)庫中記錄的目標(biāo)關(guān)系的數(shù)量大于預(yù)設(shè)數(shù)值時(shí),即數(shù)據(jù)庫中記錄的、發(fā)送api調(diào)用指令的客戶端執(zhí)行目標(biāo)業(yè)務(wù)的過程中、出現(xiàn)檢測到的異常的數(shù)量大于預(yù)設(shè)數(shù)值時(shí),表明客戶端執(zhí)行目標(biāo)業(yè)務(wù)的過程中出現(xiàn)了多次檢測到的異常,且由于檢測到的異常的存在,服務(wù)器無法向客戶端反饋評估結(jié)果,進(jìn)而導(dǎo)致目標(biāo)業(yè)務(wù)無法繼續(xù)執(zhí)行。因此,此時(shí),服務(wù)器可以針對該客戶端,降低目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別,向所述客戶端反饋評估結(jié)果。
可以理解,服務(wù)器可以將目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別降低至服務(wù)器可以直接向客戶端反饋評估結(jié)果的級別。當(dāng)滿足關(guān)閉條件時(shí),服務(wù)器可以直接將目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則關(guān)閉。其中,關(guān)閉條件為:目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別較低,且數(shù)據(jù)庫中記錄的目標(biāo)關(guān)系的數(shù)量大于預(yù)設(shè)數(shù)值。
舉例而言,假設(shè)預(yù)設(shè)數(shù)值為5,預(yù)設(shè)時(shí)間段為3分鐘,客戶端a為發(fā)送api調(diào)用指令的客戶端,且執(zhí)行業(yè)務(wù)1,異常a為檢測到的異常。數(shù)據(jù)庫中記錄的、3分鐘內(nèi)、客戶端a在執(zhí)行業(yè)務(wù)1的過程中出現(xiàn)異常a的次數(shù)為6,即預(yù)設(shè)時(shí)間段內(nèi)、目標(biāo)關(guān)系的數(shù)量為6,則可以確定,數(shù)據(jù)庫中記錄的、預(yù)設(shè)時(shí)間段內(nèi)的目標(biāo)關(guān)系的數(shù)量大于預(yù)設(shè)數(shù)值,此時(shí),服務(wù)器針對客戶端a,降低客戶端a執(zhí)行的業(yè)務(wù)1對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別。
與現(xiàn)有技術(shù)相比,通過本實(shí)施例所提供的方案,當(dāng)風(fēng)控系統(tǒng)出現(xiàn)調(diào)用超時(shí)或請求錯(cuò)誤等異常時(shí),可以向客戶端反饋評估結(jié)果,以使客戶端可以繼續(xù)執(zhí)行業(yè)務(wù),進(jìn)而可以降低出現(xiàn)業(yè)務(wù)中斷的概率。
進(jìn)一步地,作為本實(shí)施例的一種可選方案,在檢測到響應(yīng)所述api調(diào)用指令的過程中存在異常之后,該方法還可以包括:
向所述客戶端發(fā)送針對所述目標(biāo)異常的報(bào)警信息。
可以理解,報(bào)警消息可以為針對檢測到的異常的提示信息,也可以為針對檢測到的異常的警示信息。
具體地,向客戶端發(fā)送針對目標(biāo)異常的報(bào)警信息可以為:在檢測到響應(yīng)api調(diào)用指令的過程中存在異常之后,服務(wù)器向客戶端發(fā)送檢測到的異常信息,以使客戶端能夠確定服務(wù)器在響應(yīng)api調(diào)用指令的過程中存在的異常具體是什么。同時(shí),服務(wù)器反饋給客戶端的異常信息也可以用來提示用戶服務(wù)器在響應(yīng)api調(diào)用指令的過程中出現(xiàn)了異常。
這樣的話,客戶端在服務(wù)器響應(yīng)api調(diào)用指令的過程中存在異常時(shí),就可以明確確定存在的異常具體是什么,然后根據(jù)檢測到的異常繼續(xù)執(zhí)行目標(biāo)業(yè)務(wù)。
具體地,向客戶端發(fā)送針對目標(biāo)異常的報(bào)警信息還可以為:在針對發(fā)送api調(diào)用指令的客戶端降低目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別后,服務(wù)器向客戶端發(fā)送風(fēng)險(xiǎn)控制級別降低信息,用來警示用戶目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別降低了。
具體地,向客戶端發(fā)送針對目標(biāo)異常的報(bào)警信息還可以包括第一子消息和第二子消息。其中,第一子消息為:在檢測到響應(yīng)api調(diào)用指令的過程中存在異常之后,服務(wù)器向客戶端發(fā)送檢測到的異常信息;第二子消息為在針對發(fā)送api調(diào)用指令的客戶端降低目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別后,服務(wù)器向客戶端發(fā)送風(fēng)險(xiǎn)控制級別降低信息。
應(yīng)用本實(shí)施例,通過向客戶端發(fā)送針對目標(biāo)異常的報(bào)警信息,客戶端可以在服務(wù)器響應(yīng)api調(diào)用指令的過程中出現(xiàn)異常時(shí),確定出現(xiàn)的異常具體是什么,進(jìn)而可以根據(jù)出現(xiàn)的異常繼續(xù)執(zhí)行業(yè)務(wù)。并且,可以當(dāng)服務(wù)器降低風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別時(shí),能夠及時(shí)獲知。
實(shí)施例二
與實(shí)施例一所提供的異常處理方法相對應(yīng),本發(fā)明實(shí)施例還提供了一種異常處理裝置。參見圖2,圖2為本發(fā)明實(shí)施例所提供的一種異常處理裝置的結(jié)構(gòu)示意圖,應(yīng)用于服務(wù)器,該裝置可以包括:
接收模塊210,用于接收客戶端執(zhí)行目標(biāo)業(yè)務(wù)過程中發(fā)送的應(yīng)用程序接口api調(diào)用指令。
響應(yīng)模塊220,用于響應(yīng)所述api調(diào)用指令,并檢測響應(yīng)所述api調(diào)用指令的過程中是否存在異常,若存在,觸發(fā)存儲模塊230。
存儲模塊230,用于將目標(biāo)關(guān)系存入數(shù)據(jù)庫,其中,所述目標(biāo)關(guān)系為:目標(biāo)異常、所述客戶端和所述目標(biāo)業(yè)務(wù)三者之間的關(guān)系;所述目標(biāo)異常為:檢測到的異常。
判斷模塊240,用于判斷所述數(shù)據(jù)庫中記錄所述目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值,若大于,觸發(fā)降級模塊250。
降級模塊250,用于針對所述客戶端降低所述目標(biāo)業(yè)務(wù)對應(yīng)的風(fēng)險(xiǎn)控制規(guī)則的風(fēng)險(xiǎn)控制級別,向所述客戶端反饋評估結(jié)果。
具體地,判斷模塊240,具體用于:
判斷所述數(shù)據(jù)庫中記錄的、預(yù)設(shè)時(shí)間段內(nèi)所述目標(biāo)關(guān)系的數(shù)量是否大于預(yù)設(shè)數(shù)值。
具體地,響應(yīng)模塊220具體用于:
檢測響應(yīng)所述api調(diào)用指令的過程中是否出現(xiàn)預(yù)設(shè)異常,如果是,則判定響應(yīng)所述api調(diào)用指令的過程中存在異常,如果否,則判定響應(yīng)所述api調(diào)用指令的過程中不存在異常。
具體地,該裝置還可以包括:
發(fā)送模塊(圖2中未示出),用于向所述客戶端發(fā)送針對所述目標(biāo)異常的報(bào)警信息。
具體地,存儲模塊230具體用于:
將所述目標(biāo)異常的信息存儲為預(yù)設(shè)格式的目標(biāo)消息;
根據(jù)所述目標(biāo)消息,通過預(yù)設(shè)框架生成目標(biāo)關(guān)系;
將所生成的目標(biāo)關(guān)系按照時(shí)間粒度存儲至數(shù)據(jù)庫。
與現(xiàn)有技術(shù)相比,通過本實(shí)施例所提供的方案,當(dāng)風(fēng)控系統(tǒng)出現(xiàn)調(diào)用超時(shí)或請求錯(cuò)誤等異常時(shí),可以向客戶端反饋評估結(jié)果,以使客戶端可以繼續(xù)執(zhí)行業(yè)務(wù),進(jìn)而可以降低出現(xiàn)業(yè)務(wù)中斷的概率。
對于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施方式中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于計(jì)算機(jī)可讀取存儲介質(zhì)中,這里所稱得的存儲介質(zhì),如:rom/ram、磁碟、光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。