本申請(qǐng)涉及計(jì)算機(jī)
技術(shù)領(lǐng)域:
,尤其涉及一種業(yè)務(wù)請(qǐng)求處理方法及裝置。
背景技術(shù):
:隨著計(jì)算機(jī)技術(shù)的發(fā)展,互聯(lián)網(wǎng)極大地方便了人們的生活,互聯(lián)網(wǎng)中進(jìn)行的各種各樣的業(yè)務(wù),大多依賴于服務(wù)器提供的基礎(chǔ)服務(wù)。服務(wù)器在接收到某個(gè)業(yè)務(wù)請(qǐng)求時(shí),往往會(huì)響應(yīng)于該業(yè)務(wù)請(qǐng)求,對(duì)主數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)操作,但是由于服務(wù)器故障或者數(shù)據(jù)庫(kù)故障等原因,導(dǎo)致服務(wù)器無(wú)法正常操作主數(shù)據(jù)庫(kù)。為了防止服務(wù)器無(wú)法操作主數(shù)據(jù)庫(kù)而導(dǎo)致業(yè)務(wù)無(wú)法正常進(jìn)行,可以通過(guò)故障切換(failover)功能,快速啟用備用的服務(wù)器和備用數(shù)據(jù)庫(kù)來(lái)接替工作,盡可能地減少對(duì)業(yè)務(wù)的影響。在現(xiàn)有的故障切換技術(shù)中,主數(shù)據(jù)庫(kù)出現(xiàn)任何故障時(shí),都會(huì)棄用整個(gè)主數(shù)據(jù)庫(kù),然后啟用備用數(shù)據(jù)庫(kù),由于備用數(shù)據(jù)庫(kù)中并沒(méi)有保存主數(shù)據(jù)庫(kù)在故障前存儲(chǔ)的業(yè)務(wù)數(shù)據(jù),那么,與這些業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù),在啟動(dòng)備用數(shù)據(jù)庫(kù)后將無(wú)法正常進(jìn)行。技術(shù)實(shí)現(xiàn)要素:本申請(qǐng)實(shí)施例提供一種業(yè)務(wù)請(qǐng)求處理方法,用以解決現(xiàn)有技術(shù)中由于數(shù)據(jù)庫(kù)故障導(dǎo)致與該數(shù)據(jù)庫(kù)故障發(fā)生前所保存的業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)無(wú)法正常進(jìn)行的問(wèn)題。本申請(qǐng)實(shí)施例采用下述技術(shù)方案:一種業(yè)務(wù)請(qǐng)求處理方法,包括:確定第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)分片的狀態(tài);根據(jù)所述目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理,所述業(yè)務(wù)請(qǐng)求用于請(qǐng)求所述目標(biāo)數(shù)據(jù)分片對(duì)其進(jìn)行處理。本申請(qǐng)實(shí)施例還提供一種業(yè)務(wù)請(qǐng)求處理裝置,用以解決現(xiàn)有技術(shù)中由于數(shù)據(jù)庫(kù)故障導(dǎo)致與該數(shù)據(jù)庫(kù)故障發(fā)生前所保存的業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)無(wú)法正常進(jìn)行的問(wèn)題。本申請(qǐng)實(shí)施例采用下述技術(shù)方案:一種業(yè)務(wù)請(qǐng)求處理裝置,包括:確定單元,確定第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)分片的狀態(tài);請(qǐng)求處理單元,根據(jù)所述目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理,所述業(yè)務(wù)請(qǐng)求用于請(qǐng)求所述目標(biāo)數(shù)據(jù)分片對(duì)其進(jìn)行處理。本申請(qǐng)實(shí)施例采用的上述至少一個(gè)技術(shù)方案能夠達(dá)到以下有益效果:通過(guò)確定第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)分片的狀態(tài),然后根據(jù)確定的目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理,這里的業(yè)務(wù)請(qǐng)求為用于請(qǐng)求目標(biāo)數(shù)據(jù)分片對(duì)其進(jìn)行處理的請(qǐng)求。這樣,當(dāng)?shù)谝粩?shù)據(jù)庫(kù)中的部分?jǐn)?shù)據(jù)分片處于故障狀態(tài)時(shí),可以用相應(yīng)的故障處理方式處理該發(fā)生故障的數(shù)據(jù)分片,這樣將不影響數(shù)據(jù)庫(kù)中處于正常狀態(tài)的數(shù)據(jù)分片的使用,避免了現(xiàn)有技術(shù)中由于數(shù)據(jù)庫(kù)故障導(dǎo)致與該數(shù)據(jù)庫(kù)故障發(fā)生前所保存的業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)無(wú)法正常進(jìn)行的問(wèn)題。附圖說(shuō)明此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:圖1為本申請(qǐng)實(shí)施例提供的一種業(yè)務(wù)請(qǐng)求處理方法的實(shí)現(xiàn)流程示意圖;圖2為本申請(qǐng)實(shí)施例提供的ldc架構(gòu)中的一種數(shù)據(jù)部署結(jié)構(gòu)示意圖;圖3a為本申請(qǐng)實(shí)施例提供的目標(biāo)數(shù)據(jù)分片處于正常狀態(tài)時(shí),第一服務(wù)器和第二服務(wù)器之間的交互關(guān)系示意圖;圖3b為本申請(qǐng)實(shí)施例提供的目標(biāo)數(shù)據(jù)分片處于故障狀態(tài)時(shí),第一服務(wù)器和第二服務(wù)器之間的交互關(guān)系示意圖;圖3c為本申請(qǐng)實(shí)施例提供的目標(biāo)數(shù)據(jù)分片處于故障復(fù)原狀態(tài)時(shí),第一服務(wù)器和第二服務(wù)器之間的交互關(guān)系示意圖;圖3d為本申請(qǐng)實(shí)施例提供的目標(biāo)數(shù)據(jù)分片處于部分復(fù)原狀態(tài)時(shí),第一服務(wù)器和第二服務(wù)器之間的交互關(guān)系示意圖;圖4為本申請(qǐng)實(shí)施例提供的一種業(yè)務(wù)請(qǐng)求處理方法的實(shí)現(xiàn)流程示意圖;圖5為本申請(qǐng)實(shí)施例提供的一種業(yè)務(wù)請(qǐng)求處理裝置的具體結(jié)構(gòu)示意圖。具體實(shí)施方式為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)具體實(shí)施例及相應(yīng)的附圖對(duì)本申請(qǐng)技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。以下結(jié)合附圖,詳細(xì)說(shuō)明本申請(qǐng)各實(shí)施例提供的技術(shù)方案。本申請(qǐng)實(shí)施例中,可以根據(jù)數(shù)據(jù)庫(kù)中各數(shù)據(jù)分片的狀態(tài),從數(shù)據(jù)分片的維度執(zhí)行故障處理邏輯,來(lái)對(duì)針對(duì)各數(shù)據(jù)分片的業(yè)務(wù)請(qǐng)求進(jìn)行處理,避免了現(xiàn)有技術(shù)中由于數(shù)據(jù)庫(kù)故障導(dǎo)致與該數(shù)據(jù)庫(kù)故障發(fā)生前所保存的業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)無(wú)法正常進(jìn)行的問(wèn)題。為了便于理解本申請(qǐng)?zhí)峁┑姆椒?,下面首先?duì)現(xiàn)有的服務(wù)器業(yè)務(wù)請(qǐng)求處理方法進(jìn)行簡(jiǎn)單說(shuō)明,然后再詳細(xì)介紹本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)請(qǐng)求處理方法。在邏輯數(shù)據(jù)中心(logicaldatacenter,ldc)架構(gòu)中,將數(shù)據(jù)按照一定的規(guī)則,部署到了不同的機(jī)房中。在ldc架構(gòu)下,不同的機(jī)房往往位于不同的位置處,且不同的機(jī)房的位置距離較遠(yuǎn),例如機(jī)房a在杭州,機(jī)房b可能會(huì)在深圳。在正常情況下,各機(jī)房可以獨(dú)立工作,各自通過(guò)自己的服務(wù)器對(duì)各自的數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)庫(kù)操作,例如機(jī)房a的服務(wù)器a會(huì)處理自己接收到的業(yè)務(wù)請(qǐng)求,并根據(jù)該業(yè)務(wù)請(qǐng)求,對(duì)機(jī)房a的數(shù)據(jù)庫(kù)α進(jìn)行數(shù)據(jù)操作;機(jī)房b的服務(wù)器b會(huì)處理自己接收到的業(yè)務(wù)請(qǐng)求,并根據(jù)該業(yè)務(wù)請(qǐng)求,對(duì)機(jī)房b的數(shù)據(jù)庫(kù)β進(jìn)行數(shù)據(jù)操作。需要說(shuō)明的是本申請(qǐng)實(shí)施例中所述服務(wù)器可以是基于單臺(tái)計(jì)算設(shè)備搭建的服務(wù)器,也可以是基于多臺(tái)計(jì)算設(shè)備搭建的服務(wù)器或服務(wù)器群。為了便于后續(xù)描述,在本申請(qǐng)實(shí)施例中,將
背景技術(shù):
中所描述的主數(shù)據(jù)庫(kù)稱為第一數(shù)據(jù)庫(kù),將主數(shù)據(jù)庫(kù)的備用數(shù)據(jù)庫(kù)稱為第二數(shù)據(jù)庫(kù)。在數(shù)據(jù)庫(kù)無(wú)故障時(shí),對(duì)第一數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)操作的服務(wù)器稱為第一服務(wù)器,在數(shù)據(jù)庫(kù)故障時(shí),對(duì)第二數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)操作的服務(wù)器稱為第二服務(wù)器,即第二服務(wù)器可以是第一服務(wù)器的備用服務(wù)器。在現(xiàn)有技術(shù)中,業(yè)務(wù)請(qǐng)求處理方法大多為數(shù)據(jù)庫(kù)直切法,具體地,當(dāng)服務(wù)器a對(duì)應(yīng)的數(shù)據(jù)庫(kù)α故障時(shí),那么當(dāng)數(shù)據(jù)庫(kù)a的業(yè)務(wù)請(qǐng)求到達(dá)服務(wù)器a時(shí),服務(wù)器會(huì)對(duì)該業(yè)務(wù)請(qǐng)求進(jìn)行處理,并對(duì)數(shù)據(jù)庫(kù)β進(jìn)行與該業(yè)務(wù)請(qǐng)求相關(guān)的數(shù)據(jù)操作。而當(dāng)故障復(fù)原時(shí),服務(wù)器a又會(huì)直接根據(jù)接收到的業(yè)務(wù)請(qǐng)求,對(duì)數(shù)據(jù)庫(kù)α進(jìn)行數(shù)據(jù)操作。然而,數(shù)據(jù)庫(kù)直切法存在以下缺點(diǎn):1、如果服務(wù)器a和服務(wù)器b的地理位置距離較遠(yuǎn)時(shí),那么在寫數(shù)據(jù)庫(kù)時(shí)耗時(shí)會(huì)非常嚴(yán)重;2、由于數(shù)據(jù)庫(kù)β中沒(méi)有保存數(shù)據(jù)庫(kù)α中的數(shù)據(jù),因此在服務(wù)器a故障時(shí),基于數(shù)據(jù)庫(kù)α內(nèi)的業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù),將會(huì)受到影響。顯然,該方法同樣也存在
背景技術(shù):
中提到的問(wèn)題,即在數(shù)據(jù)庫(kù)故障時(shí),會(huì)導(dǎo)致與該數(shù)據(jù)庫(kù)故障發(fā)生前所保存的業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)無(wú)法正常進(jìn)行的問(wèn)題?;诂F(xiàn)有技術(shù)中由于數(shù)據(jù)庫(kù)故障導(dǎo)致與該數(shù)據(jù)庫(kù)故障發(fā)生前所保存的業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)無(wú)法正常進(jìn)行的問(wèn)題,本申請(qǐng)?zhí)峁┮环N業(yè)務(wù)請(qǐng)求處理方法,以下結(jié)合附圖,詳細(xì)說(shuō)明本申請(qǐng)實(shí)施例提供的技術(shù)方案。本申請(qǐng)實(shí)施例提供的業(yè)務(wù)請(qǐng)求處理方法的執(zhí)行主體可以是計(jì)算設(shè)備,例如服務(wù)器等等,此外該方法的執(zhí)行主體還可以是實(shí)現(xiàn)該方法的軟件本身。為便于描述,下文以該方法的執(zhí)行主體為實(shí)現(xiàn)該方法的服務(wù)器為例,對(duì)該方法的實(shí)施方式進(jìn)行介紹??梢岳斫?,該方法的執(zhí)行主體為實(shí)現(xiàn)該方法的軟件本身只是一種示例性的說(shuō)明,并不應(yīng)理解為對(duì)該方法的限定。該方法的實(shí)現(xiàn)流程示意圖如圖1所示,包括下述步驟:步驟s101:確定第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)分片的狀態(tài);數(shù)據(jù)分片,是數(shù)據(jù)庫(kù)分區(qū)的一種,是按照某種數(shù)據(jù)劃分維度,將數(shù)據(jù)庫(kù)分成更小、更快、更容易管理的部分。例如,按照用戶身份標(biāo)識(shí)(identity,id)的最后兩位進(jìn)行劃分,可以將數(shù)據(jù)分成100個(gè)數(shù)據(jù)分片。在ldc架構(gòu)中,每個(gè)機(jī)房會(huì)承載一部分?jǐn)?shù)據(jù)分片的數(shù)據(jù),例如:機(jī)房a承載00-19的數(shù)據(jù)分片,機(jī)房b承載80-99的數(shù)據(jù)分片。在現(xiàn)有技術(shù)中,當(dāng)數(shù)據(jù)庫(kù)中的某一部分故障時(shí),比如某一個(gè)數(shù)據(jù)分片故障時(shí),在進(jìn)行故障切換時(shí),將確認(rèn)整個(gè)數(shù)據(jù)庫(kù)為故障狀態(tài),然后使用備用數(shù)據(jù)庫(kù)進(jìn)行業(yè)務(wù)操作。這樣,整個(gè)故障數(shù)據(jù)庫(kù)中保存的業(yè)務(wù)數(shù)據(jù)都將無(wú)法使用。在本申請(qǐng)實(shí)施例中,可以根據(jù)目標(biāo)數(shù)據(jù)分片的狀態(tài),來(lái)對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理,那么可以預(yù)先將數(shù)據(jù)分片大致分為三種狀態(tài):正常狀態(tài)、故障狀態(tài)(failover)、故障復(fù)原狀態(tài)(failback)。其中,所述正常狀態(tài),為與所述第一數(shù)據(jù)庫(kù)對(duì)應(yīng)的第一服務(wù)器能夠根據(jù)業(yè)務(wù)請(qǐng)求對(duì)相應(yīng)的數(shù)據(jù)分片進(jìn)行正常操作的狀態(tài);所述故障狀態(tài),為所述第一服務(wù)器無(wú)法根據(jù)業(yè)務(wù)請(qǐng)求對(duì)相應(yīng)的數(shù)據(jù)分片進(jìn)行正常操作的狀態(tài);所述故障復(fù)原狀態(tài),為所述業(yè)務(wù)請(qǐng)求相應(yīng)的數(shù)據(jù)分片的狀態(tài)從故障狀態(tài)切換至正常狀態(tài)。當(dāng)故障狀態(tài)復(fù)原后,即為正常狀態(tài)。在數(shù)據(jù)庫(kù)的日常使用中,導(dǎo)致數(shù)據(jù)分片的狀態(tài)為故障狀態(tài)的原因有很多,比如該數(shù)據(jù)分片硬件故障和/或軟件故障,或者與該數(shù)據(jù)分片對(duì)應(yīng)的服務(wù)器故障,或者該數(shù)據(jù)分片所在的網(wǎng)絡(luò)故障,等等。在實(shí)際應(yīng)用中,可以通過(guò)分布式資源管理器(distributedresourcemanagement,drm)來(lái)推送每個(gè)數(shù)據(jù)分片的狀態(tài),進(jìn)而服務(wù)器可以確定各數(shù)據(jù)分片的狀態(tài)。具體地,當(dāng)某個(gè)數(shù)據(jù)分片故障或者該數(shù)據(jù)分片對(duì)應(yīng)的服務(wù)器故障時(shí),則drm會(huì)推送該數(shù)據(jù)分片的狀態(tài)為故障狀態(tài);當(dāng)該數(shù)據(jù)分片或者該數(shù)據(jù)分片對(duì)應(yīng)的服務(wù)器故障恢復(fù)后,則drm會(huì)推送該數(shù)據(jù)分片的狀態(tài)為故障復(fù)原狀態(tài),此外,當(dāng)需要回遷的數(shù)據(jù)的用戶數(shù)量小于預(yù)定數(shù)量時(shí),則drm會(huì)推送數(shù)據(jù)分片為部分復(fù)原狀態(tài),當(dāng)所有數(shù)據(jù)回遷完成后,推送數(shù)據(jù)分片狀態(tài)為正常狀態(tài)。步驟s102:根據(jù)所述目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理,所述業(yè)務(wù)請(qǐng)求用于請(qǐng)求所述目標(biāo)數(shù)據(jù)分片對(duì)其進(jìn)行處理。在確定目標(biāo)數(shù)據(jù)分片的狀態(tài)后,便可以在目標(biāo)數(shù)據(jù)分片處于不同狀態(tài)時(shí),采用不同的處理方式,盡可能地減少目標(biāo)數(shù)據(jù)分片故障時(shí)對(duì)業(yè)務(wù)的影響。為了便于理解本方案中對(duì)業(yè)務(wù)請(qǐng)求的處理方式,這里先以ldc架構(gòu)為例,簡(jiǎn)單介紹下本申請(qǐng)的業(yè)務(wù)請(qǐng)求處理方法中,故障切換機(jī)制的基本工作原理。請(qǐng)參閱圖2,為本例中的數(shù)據(jù)部署結(jié)構(gòu)示意圖,其中左側(cè)為杭州機(jī)房中的數(shù)據(jù)分片z1,右側(cè)為深圳機(jī)房中的數(shù)據(jù)分片z2。在各數(shù)據(jù)分片狀態(tài)均正常時(shí),z1的服務(wù)器會(huì)將屬于自己分片的業(yè)務(wù)數(shù)據(jù)寫入z1中,z2的服務(wù)器會(huì)將屬于自己分片的業(yè)務(wù)數(shù)據(jù)寫入z2中,同時(shí)z1中的業(yè)務(wù)數(shù)據(jù)會(huì)備份到z1的備份數(shù)據(jù)庫(kù)中。在數(shù)據(jù)分片z1出現(xiàn)故障時(shí),屬于數(shù)據(jù)分片z1的業(yè)務(wù)流量會(huì)分配給深圳機(jī)房中的數(shù)據(jù)分片z2。但是,z1業(yè)務(wù)流量的業(yè)務(wù)數(shù)據(jù),并不會(huì)寫入到數(shù)據(jù)分片z2中,原本屬于數(shù)據(jù)分片z1的數(shù)據(jù),會(huì)通過(guò)z2的服務(wù)器寫入數(shù)據(jù)分片z2的fo數(shù)據(jù)庫(kù)中。對(duì)于數(shù)據(jù)分片z1故障前的部分業(yè)務(wù)數(shù)據(jù),可以從z1的備份數(shù)據(jù)庫(kù)中讀取。在數(shù)據(jù)分片z1故障解決后,便可以將z2的fo數(shù)據(jù)庫(kù)中的數(shù)據(jù)恢復(fù)到z1中。然后z1和z2即正常處理各自接收到的業(yè)務(wù)請(qǐng)求。至此,便實(shí)現(xiàn)了一套最基本的故障轉(zhuǎn)移機(jī)制,為了進(jìn)一步減少數(shù)據(jù)庫(kù)故障時(shí)對(duì)業(yè)務(wù)的影響,本申請(qǐng)對(duì)該故障轉(zhuǎn)移機(jī)制做了進(jìn)一步優(yōu)化,下面,將詳細(xì)描述本申請(qǐng)實(shí)施例中根據(jù)目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理的方式。在目標(biāo)數(shù)據(jù)分片處于正常狀態(tài)時(shí),對(duì)業(yè)務(wù)請(qǐng)求的處理方式如下:在確定目標(biāo)數(shù)據(jù)分片處于正常狀態(tài)時(shí),可以將對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理得到的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至該目標(biāo)數(shù)據(jù)分片中,并將業(yè)務(wù)數(shù)據(jù)備份到預(yù)設(shè)的第二數(shù)據(jù)庫(kù)中。如圖3a所示,為本申請(qǐng)實(shí)施例提供的第一服務(wù)器和第二服務(wù)器之間的交互關(guān)系示意圖,這里的第二服務(wù)器可以是第一服務(wù)器的備用服務(wù)器,用于在第一服務(wù)器故障時(shí),對(duì)原先分配給第一服務(wù)器的業(yè)務(wù)請(qǐng)求進(jìn)行處理。同時(shí)第二服務(wù)器也可以處理分配給自己的業(yè)務(wù)請(qǐng)求,并將對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理得到的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到第四數(shù)據(jù)庫(kù)中。在ldc架構(gòu)中,可以在不同的機(jī)房之間對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行互相備份,比如,可以在深圳機(jī)房搭建杭州機(jī)房的備份數(shù)據(jù)庫(kù)(第二數(shù)據(jù)庫(kù)),用來(lái)對(duì)杭州機(jī)房中第一數(shù)據(jù)庫(kù)的業(yè)務(wù)數(shù)據(jù)進(jìn)行備份。在將業(yè)務(wù)數(shù)據(jù)備份到第二數(shù)據(jù)庫(kù)中時(shí),為了不影響第一服務(wù)器中業(yè)務(wù)的正常進(jìn)行,可以將業(yè)務(wù)數(shù)據(jù)異步備份到第二數(shù)據(jù)庫(kù)中。具體地,由于第一服務(wù)器在將業(yè)務(wù)數(shù)據(jù)進(jìn)行保存后,最好是要將保存結(jié)果立刻返回,以便及時(shí)向用戶反饋業(yè)務(wù)處理結(jié)果。但是,如果此時(shí)將業(yè)務(wù)數(shù)據(jù)同步保存到第二數(shù)據(jù)庫(kù)中,會(huì)延長(zhǎng)保存結(jié)果返回的時(shí)間,造成業(yè)務(wù)時(shí)間上的延遲。因此可以在等第一服務(wù)器將業(yè)務(wù)處理完畢后,再將該處理過(guò)程中的業(yè)務(wù)數(shù)據(jù)進(jìn)行備份,即異步將業(yè)務(wù)數(shù)據(jù)進(jìn)行備份。具體備份的時(shí)機(jī)可以是在設(shè)定時(shí)間到達(dá)時(shí),將業(yè)務(wù)數(shù)據(jù)備份至預(yù)設(shè)的第二數(shù)據(jù)庫(kù)中。該設(shè)定時(shí)間可以是預(yù)設(shè)的某個(gè)時(shí)間點(diǎn),也可以是在將業(yè)務(wù)數(shù)據(jù)保存到數(shù)據(jù)分片后,經(jīng)過(guò)了預(yù)定時(shí)長(zhǎng)時(shí)的時(shí)刻,比如可以是從將業(yè)務(wù)數(shù)據(jù)保存到目標(biāo)數(shù)據(jù)分片時(shí)開(kāi)始,經(jīng)過(guò)了1分鐘時(shí)。為了防止在設(shè)定時(shí)間到達(dá)前沒(méi)有備份的業(yè)務(wù)數(shù)據(jù),在后續(xù)數(shù)據(jù)分片處于故障狀態(tài)時(shí),影響與沒(méi)有備份的業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)。那么,可以在將業(yè)務(wù)數(shù)據(jù)保存到目標(biāo)數(shù)據(jù)分片中時(shí),將該業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)標(biāo)識(shí)保存到預(yù)設(shè)的業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中,該業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表的具體存儲(chǔ)位置可以是第二數(shù)據(jù)庫(kù)中的表,如圖3a所示。這里所說(shuō)的業(yè)務(wù)標(biāo)識(shí)用于標(biāo)識(shí)與業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù),例如,對(duì)于某筆交易而言,業(yè)務(wù)標(biāo)識(shí)可以是該筆交易的訂單號(hào)。需要說(shuō)明的是,當(dāng)業(yè)務(wù)數(shù)據(jù)已經(jīng)成功備份至第二數(shù)據(jù)庫(kù)時(shí),便可以將保存在業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中的、業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)標(biāo)識(shí)刪除。這樣便可以釋放更多的存儲(chǔ)空間?;谠跇I(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中保存了異步備份的這段時(shí)間內(nèi),沒(méi)有備份到第二數(shù)據(jù)庫(kù)中的業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)標(biāo)識(shí),那么在數(shù)據(jù)分片為故障狀態(tài)時(shí),便可以根據(jù)業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中的業(yè)務(wù)標(biāo)識(shí),確認(rèn)該業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)已經(jīng)發(fā)生過(guò)了。防止在設(shè)定時(shí)間到達(dá)前沒(méi)有備份的業(yè)務(wù)數(shù)據(jù),在后續(xù)數(shù)據(jù)分片處于故障狀態(tài)時(shí),影響與沒(méi)有備份的業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)。但是,在嘗試將該業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)標(biāo)識(shí)保存到業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中后,如果保存失敗,那么在數(shù)據(jù)分片為故障狀態(tài)時(shí),保存失敗的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的業(yè)務(wù)重復(fù)發(fā)生的話,可能會(huì)帶來(lái)某些問(wèn)題。例如,商家向用戶發(fā)放了優(yōu)惠券,買家在利用該優(yōu)惠券買了某個(gè)商品后,該筆交易的業(yè)務(wù)數(shù)據(jù)沒(méi)有被備份到第二數(shù)據(jù)庫(kù)中,而且也沒(méi)有記錄到業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中。這樣,保存有該筆交易的數(shù)據(jù)分片發(fā)生故障時(shí),買家便可以再次利用該優(yōu)惠券進(jìn)行購(gòu)物,導(dǎo)致優(yōu)惠券發(fā)行方或賣家的資產(chǎn)損失。為了避免類似事件的發(fā)生,可以在當(dāng)確定業(yè)務(wù)標(biāo)識(shí)在業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中存儲(chǔ)失敗時(shí),確定在所述設(shè)定時(shí)間內(nèi)所述業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的至少一個(gè)業(yè)務(wù)數(shù)據(jù)中包含的數(shù)據(jù)項(xiàng)的屬性值之和,然后判斷該屬性值的和,是否超過(guò)了設(shè)定閾值。該設(shè)定閾值比如可以是可承受的資產(chǎn)損失的額度。如果超過(guò)了設(shè)定閾值,則觸發(fā)該業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)請(qǐng)求處理失敗,如果沒(méi)有超過(guò)預(yù)設(shè)的閾值,則可以讓該業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)成功。本申請(qǐng)實(shí)施例中,當(dāng)接收到的業(yè)務(wù)請(qǐng)求是與優(yōu)惠券相關(guān)的業(yè)務(wù)時(shí),可以在數(shù)據(jù)庫(kù)故障時(shí),實(shí)現(xiàn)對(duì)資產(chǎn)損失的控制。這里所說(shuō)的優(yōu)惠券比如可以是數(shù)據(jù)庫(kù)中以數(shù)據(jù)形式保存的網(wǎng)上的紅包、代金券等,優(yōu)惠券可以用于網(wǎng)上購(gòu)物、線下消費(fèi)等各種場(chǎng)景。在實(shí)際應(yīng)用中,可以在業(yè)務(wù)請(qǐng)求到來(lái)時(shí),在事務(wù)中注冊(cè)事務(wù)同步器,事務(wù)同步器可以調(diào)用異地的服務(wù),將當(dāng)前業(yè)務(wù)請(qǐng)求的業(yè)務(wù)標(biāo)識(shí)保存到業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中。在目標(biāo)數(shù)據(jù)分片處于故障狀態(tài)時(shí),對(duì)業(yè)務(wù)請(qǐng)求的處理方式如下:在確定目標(biāo)數(shù)據(jù)分片處于故障狀態(tài)時(shí),當(dāng)用于請(qǐng)求目標(biāo)數(shù)據(jù)分片對(duì)其進(jìn)行處理的請(qǐng)求到來(lái)時(shí),對(duì)業(yè)務(wù)請(qǐng)求的處理流程示意圖如圖4所示,包括下述步驟:步驟s201:將分配給目標(biāo)數(shù)據(jù)分片的業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)給第二服務(wù)器,指示第二服務(wù)器來(lái)處理該業(yè)務(wù)請(qǐng)求;如圖3b所示,為目標(biāo)數(shù)據(jù)分片故障狀態(tài)時(shí),第一服務(wù)器和第二服務(wù)器之間的交互示意圖。針對(duì)目標(biāo)數(shù)據(jù)分片的業(yè)務(wù)請(qǐng)求,會(huì)轉(zhuǎn)發(fā)至第二服務(wù)器,由第二服務(wù)器來(lái)處理。本申請(qǐng)實(shí)施例中,直接利用第二服務(wù)器來(lái)處理業(yè)務(wù)請(qǐng)求的方式,相對(duì)于現(xiàn)有技術(shù)中通過(guò)第一服務(wù)器遠(yuǎn)程操作第二數(shù)據(jù)庫(kù)的方式,耗時(shí)較短,業(yè)務(wù)處理效率較高。步驟s202:第二服務(wù)器判斷該業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作的操作類型;具體判斷操作類型的方式,可以是根據(jù)業(yè)務(wù)請(qǐng)求調(diào)用的數(shù)據(jù)庫(kù)接口類型來(lái)判斷。步驟s203:若業(yè)務(wù)請(qǐng)求用于請(qǐng)求對(duì)數(shù)據(jù)執(zhí)行更改操作,則查詢業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中是否存在該業(yè)務(wù)請(qǐng)求包含的業(yè)務(wù)標(biāo)識(shí);步驟s204:如果存在該業(yè)務(wù)標(biāo)識(shí),表明該業(yè)務(wù)已經(jīng)發(fā)生過(guò)了,只是業(yè)務(wù)數(shù)據(jù)還沒(méi)有備份到第二數(shù)據(jù)庫(kù)而已,則阻止該更改操作;步驟s205:如果不存在該業(yè)務(wù)標(biāo)識(shí),則在第二數(shù)據(jù)庫(kù)中對(duì)處理所述業(yè)務(wù)請(qǐng)求得到的業(yè)務(wù)數(shù)據(jù)進(jìn)行冪等校驗(yàn);該冪等校驗(yàn)即判斷該業(yè)務(wù)數(shù)據(jù)是否存在于第二數(shù)據(jù)庫(kù)中。步驟s206:若冪等校驗(yàn)成功,則阻止該數(shù)據(jù)庫(kù)操作;冪等校驗(yàn)成功,表明第二數(shù)據(jù)庫(kù)中存在處理所述業(yè)務(wù)請(qǐng)求得到的業(yè)務(wù)數(shù)據(jù),即該數(shù)據(jù)請(qǐng)求是歷史的數(shù)據(jù)請(qǐng)求。步驟s207:若冪等校驗(yàn)失敗,則判斷業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中是否存在所述業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的業(yè)務(wù)標(biāo)識(shí);冪等校驗(yàn)失敗,表明第二數(shù)據(jù)庫(kù)中不存在處理所述業(yè)務(wù)請(qǐng)求得到的業(yè)務(wù)數(shù)據(jù),即該數(shù)據(jù)請(qǐng)求不是歷史的數(shù)據(jù)請(qǐng)求。步驟s208:如果用戶標(biāo)識(shí)數(shù)據(jù)表中不存在該用戶標(biāo)識(shí),則在用戶標(biāo)識(shí)數(shù)據(jù)表中記錄該業(yè)務(wù)請(qǐng)求的用戶標(biāo)識(shí),并將處理所述業(yè)務(wù)請(qǐng)求得到的業(yè)務(wù)數(shù)據(jù)保存到第三數(shù)據(jù)庫(kù)中;這里的第三數(shù)據(jù)庫(kù),可以記錄數(shù)據(jù)分片處于failover和failback期間的業(yè)務(wù)數(shù)據(jù),也可稱作fo數(shù)據(jù)庫(kù),用戶標(biāo)識(shí)數(shù)據(jù)表可以以用戶的維度,記錄在failover和failback期間的數(shù)據(jù)操作。需要說(shuō)明的是,這里所說(shuō)的對(duì)數(shù)據(jù)執(zhí)行更改操作,可以是對(duì)原有的業(yè)務(wù)數(shù)據(jù)進(jìn)行更改,也可以是對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行寫入。那么,如果該更改操作是對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行寫入的操作,則直接對(duì)第三數(shù)據(jù)庫(kù)執(zhí)行該更改操作;如果該更改操作所要更改的數(shù)據(jù)存儲(chǔ)于第三數(shù)據(jù)庫(kù)中,則直接對(duì)第三數(shù)據(jù)庫(kù)執(zhí)行該更改操作;如果該更改操作所要更改的數(shù)據(jù)存儲(chǔ)于第二數(shù)據(jù)庫(kù)中,則將更改操作請(qǐng)求更改的數(shù)據(jù)搬遷到第三數(shù)據(jù)庫(kù)中,然后在第三數(shù)據(jù)庫(kù)中執(zhí)行數(shù)據(jù)更改操作,防止在第二數(shù)據(jù)庫(kù)中更改完數(shù)據(jù)后,與之前備份的數(shù)據(jù)混在同一數(shù)據(jù)庫(kù)中,不方便將更改的業(yè)務(wù)數(shù)據(jù)進(jìn)行回遷。步驟s209:如果用戶標(biāo)識(shí)數(shù)據(jù)表中存在該用戶標(biāo)識(shí),則無(wú)需在寫入該用戶標(biāo)識(shí),直接將該處理所述業(yè)務(wù)請(qǐng)求得到的業(yè)務(wù)數(shù)據(jù)保存到第三數(shù)據(jù)庫(kù)中;步驟s210:如果業(yè)務(wù)請(qǐng)求用于請(qǐng)求對(duì)數(shù)據(jù)執(zhí)行查找操作,可以先查詢業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中是否存在該業(yè)務(wù)請(qǐng)求包含的業(yè)務(wù)標(biāo)識(shí);步驟s211:如果用戶標(biāo)識(shí)數(shù)據(jù)表中不存在該用戶標(biāo)識(shí),則表明在failover和failback期間沒(méi)有該用戶的業(yè)務(wù)數(shù)據(jù)寫入,則只對(duì)第二數(shù)據(jù)庫(kù)進(jìn)行查找操作;步驟s212:如果用戶標(biāo)識(shí)數(shù)據(jù)表中有該用戶標(biāo)識(shí),則表明在failover和failback期間有該用戶的業(yè)務(wù)數(shù)據(jù)寫入,則對(duì)第二數(shù)據(jù)庫(kù)和第三數(shù)據(jù)庫(kù)執(zhí)行查找操作。在目標(biāo)數(shù)據(jù)分片處于故障復(fù)原狀態(tài)時(shí),對(duì)業(yè)務(wù)請(qǐng)求的處理方式如下:在確定目標(biāo)數(shù)據(jù)分片處于故障復(fù)原狀態(tài)(failback)時(shí),表明此時(shí)第一服務(wù)器已經(jīng)能夠根據(jù)業(yè)務(wù)請(qǐng)求對(duì)目標(biāo)數(shù)據(jù)分片進(jìn)行數(shù)據(jù)操作,但是由于第三數(shù)據(jù)庫(kù)中仍然有failover時(shí)保存的業(yè)務(wù)數(shù)據(jù),那么,為了不影響與該部分業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù),第二服務(wù)器仍然可以根據(jù)業(yè)務(wù)請(qǐng)求對(duì)第三數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)操作。這樣,針對(duì)目標(biāo)數(shù)據(jù)分片的業(yè)務(wù)請(qǐng)求有一部分會(huì)到達(dá)第一服務(wù)器,有一部分會(huì)到達(dá)第二服務(wù)器。如圖3c所示,為目標(biāo)數(shù)據(jù)分片故障復(fù)原狀態(tài)時(shí),第一服務(wù)器和第二服務(wù)器之間的交互示意圖。具體地,當(dāng)針對(duì)目標(biāo)數(shù)據(jù)分片的業(yè)務(wù)請(qǐng)求到達(dá)第一服務(wù)器時(shí),則查詢用戶標(biāo)識(shí)數(shù)據(jù)表中,是否保存有該業(yè)務(wù)請(qǐng)求中攜帶的用戶標(biāo)識(shí)。如果沒(méi)有,表明在failover和failback期間沒(méi)有保存該用戶標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)請(qǐng)求,則利用第一服務(wù)器對(duì)該業(yè)務(wù)請(qǐng)求進(jìn)行處理,并針對(duì)目標(biāo)數(shù)據(jù)分片執(zhí)行數(shù)據(jù)操作;如果有,則將該業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至第二服務(wù)器,并指示第二服務(wù)器處理該業(yè)務(wù)請(qǐng)求。當(dāng)業(yè)務(wù)請(qǐng)求到達(dá)第二服務(wù)器時(shí),判斷該業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作的操作類型。如果業(yè)務(wù)請(qǐng)求用于請(qǐng)求對(duì)數(shù)據(jù)執(zhí)行查找操作,則查詢用戶標(biāo)識(shí)數(shù)據(jù)表中,是否保存有該業(yè)務(wù)請(qǐng)求中攜帶的用戶標(biāo)識(shí)。如果包含,則對(duì)第二數(shù)據(jù)庫(kù)和/或第三數(shù)據(jù)庫(kù)執(zhí)行查找操作,并將查找到的數(shù)據(jù)一并返回。如果沒(méi)有業(yè)務(wù)請(qǐng)求攜帶的用戶標(biāo)識(shí),則將業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至第一服務(wù)器,指示第一服務(wù)器處理該業(yè)務(wù)請(qǐng)求如果到達(dá)第二服務(wù)器的該業(yè)務(wù)請(qǐng)求,用于請(qǐng)求對(duì)數(shù)據(jù)執(zhí)行更改操作時(shí),則查詢業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中是否存在該業(yè)務(wù)請(qǐng)求包含的業(yè)務(wù)標(biāo)識(shí)。如果存在該業(yè)務(wù)標(biāo)識(shí),表明該業(yè)務(wù)已經(jīng)發(fā)生過(guò)了,只是業(yè)務(wù)數(shù)據(jù)還沒(méi)有備份到第二數(shù)據(jù)庫(kù)而已,則阻止該更改操作;如果不存在該業(yè)務(wù)標(biāo)識(shí),則在第二數(shù)據(jù)庫(kù)中對(duì)處理所述業(yè)務(wù)請(qǐng)求得到的業(yè)務(wù)數(shù)據(jù)進(jìn)行冪等校驗(yàn);若冪等校驗(yàn)失敗,表明該數(shù)據(jù)請(qǐng)求不是歷史的數(shù)據(jù)請(qǐng)求,則判斷用戶標(biāo)識(shí)數(shù)據(jù)表中是否存在所述業(yè)務(wù)請(qǐng)求攜帶的用戶標(biāo)識(shí)。如果不存在該用戶標(biāo)識(shí),則將業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至第一服務(wù)器,并指示第一服務(wù)器處理該業(yè)務(wù)請(qǐng)求;如果存在該用戶標(biāo)識(shí),則將處理所述業(yè)務(wù)請(qǐng)求得到的業(yè)務(wù)數(shù)據(jù)保存到第三數(shù)據(jù)庫(kù)中。若冪等校驗(yàn)成功,表明該數(shù)據(jù)請(qǐng)求是歷史的數(shù)據(jù)請(qǐng)求,則阻止該數(shù)據(jù)庫(kù)操作。在確定數(shù)據(jù)分片處于故障復(fù)原狀態(tài)時(shí),還可以根據(jù)用戶標(biāo)識(shí)數(shù)據(jù)表中的用戶標(biāo)識(shí),按照用戶維度將第三數(shù)據(jù)庫(kù)中的業(yè)務(wù)數(shù)據(jù)遷移到目標(biāo)數(shù)據(jù)分片中。具體地,可以分別將各用戶標(biāo)識(shí)對(duì)應(yīng)的第三數(shù)據(jù)庫(kù)中的業(yè)務(wù)數(shù)據(jù),遷移到與各用戶標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)分片中。并將已成功遷移的業(yè)務(wù)數(shù)據(jù)從第三數(shù)據(jù)庫(kù)中刪除,而且將已成功遷移的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的用戶標(biāo)識(shí),從用戶標(biāo)識(shí)數(shù)據(jù)表中刪除。在目標(biāo)數(shù)據(jù)分片處于部分復(fù)原狀態(tài)時(shí),對(duì)業(yè)務(wù)請(qǐng)求的處理方式如下:當(dāng)用戶標(biāo)識(shí)數(shù)據(jù)表中的用戶標(biāo)識(shí)的數(shù)量小于預(yù)定數(shù)量時(shí),此時(shí)數(shù)據(jù)分片處于部分復(fù)原狀態(tài),這意味著大部分用戶的數(shù)據(jù)已經(jīng)回遷完成。此時(shí)可以將第三數(shù)據(jù)庫(kù)設(shè)置為禁止寫入狀態(tài),避免第三數(shù)據(jù)庫(kù)中還有數(shù)據(jù)寫入,導(dǎo)致第三數(shù)據(jù)庫(kù)中的數(shù)據(jù)一直回遷不完。如圖3d所示,為目標(biāo)數(shù)據(jù)分片部分復(fù)原狀態(tài)時(shí),第一服務(wù)器和第二服務(wù)器之間的交互示意圖。具體地,當(dāng)針對(duì)目標(biāo)數(shù)據(jù)分片的業(yè)務(wù)請(qǐng)求到達(dá)第一服務(wù)器時(shí),查詢用戶標(biāo)識(shí)數(shù)據(jù)表中,是否保存有該業(yè)務(wù)請(qǐng)求中攜帶的用戶標(biāo)識(shí)。如果沒(méi)有,表明在failover和failback期間沒(méi)有保存該用戶標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)請(qǐng)求,或者該用戶標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)請(qǐng)求已經(jīng)回遷完成,則利用第一服務(wù)器對(duì)該業(yè)務(wù)請(qǐng)求進(jìn)行處理;如果有,則將該業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至第二服務(wù)器,指示第二服務(wù)器處理該請(qǐng)求。當(dāng)業(yè)務(wù)請(qǐng)求到達(dá)第二服務(wù)器時(shí),判斷該業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作的操作類型。如果業(yè)務(wù)請(qǐng)求用于請(qǐng)求對(duì)數(shù)據(jù)執(zhí)行更改操作,則判斷用戶標(biāo)識(shí)數(shù)據(jù)表中是否存在業(yè)務(wù)請(qǐng)求攜帶的用戶標(biāo)識(shí)。如果不存在該用戶標(biāo)識(shí),則將業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至第一服務(wù)器,并指派第一服務(wù)器處理該業(yè)務(wù)請(qǐng)求;如果存在該用戶標(biāo)識(shí),則阻止該數(shù)據(jù)庫(kù)操作。當(dāng)所有數(shù)據(jù)回遷完成后,便可推送數(shù)據(jù)分片的狀態(tài)為正常狀態(tài)。為了便于理解本方案目標(biāo)數(shù)據(jù)分片處于不同狀態(tài)時(shí),第一服務(wù)器和第二服務(wù)器的主要工作狀態(tài),下面在表1中示出了目標(biāo)數(shù)據(jù)分片處于不同狀態(tài)時(shí),第一服務(wù)器和第二服務(wù)器的主要工作狀態(tài)。目標(biāo)數(shù)據(jù)分片狀態(tài)第一服務(wù)器第二服務(wù)器正常狀態(tài)正常模式正常模式故障狀態(tài)目標(biāo)數(shù)據(jù)分片不能讀寫第三數(shù)據(jù)庫(kù)讀寫故障復(fù)原狀態(tài)目標(biāo)數(shù)據(jù)分片部分讀寫第三數(shù)據(jù)庫(kù)讀寫部分復(fù)原狀態(tài)目標(biāo)數(shù)據(jù)分片部分讀寫第三數(shù)據(jù)庫(kù)只讀表1其中,當(dāng)目標(biāo)數(shù)據(jù)分片處于正常狀態(tài)時(shí),第一服務(wù)器和第二服務(wù)器均按照正常模式處理各自的業(yè)務(wù)請(qǐng)求,并將對(duì)業(yè)務(wù)請(qǐng)求處理得到的業(yè)務(wù)數(shù)據(jù)進(jìn)行保存;當(dāng)目標(biāo)數(shù)據(jù)分片處于故障狀態(tài)時(shí),第一服務(wù)器的目標(biāo)數(shù)據(jù)分片故障,不能讀寫,此時(shí)由第二服務(wù)器處理業(yè)務(wù)請(qǐng)求,并在第三數(shù)據(jù)庫(kù)進(jìn)行業(yè)務(wù)數(shù)據(jù)的讀寫;當(dāng)目標(biāo)數(shù)據(jù)分片處于故障復(fù)原狀態(tài)時(shí),由于目標(biāo)數(shù)據(jù)分片已經(jīng)恢復(fù)正常,但是部分?jǐn)?shù)據(jù)還沒(méi)有遷移回來(lái),此時(shí)第一服務(wù)器處理部分業(yè)務(wù)請(qǐng)求,則目標(biāo)數(shù)據(jù)分片部分讀寫,第二服務(wù)器也處理部分業(yè)務(wù)請(qǐng)求,第三數(shù)據(jù)庫(kù)仍舊支持讀寫;當(dāng)目標(biāo)數(shù)據(jù)分片處于部分復(fù)原狀態(tài)時(shí),由于目標(biāo)數(shù)據(jù)分片已經(jīng)恢復(fù)正常,但是部分?jǐn)?shù)據(jù)還沒(méi)有遷移回來(lái),此時(shí)第一服務(wù)器的目標(biāo)數(shù)據(jù)分片部分讀寫。同時(shí)為了防止第三數(shù)據(jù)庫(kù)中持續(xù)有數(shù)據(jù)寫入,導(dǎo)致數(shù)據(jù)一直遷移不完,則第三數(shù)據(jù)庫(kù)只讀。本申請(qǐng)?zhí)峁┑臉I(yè)務(wù)請(qǐng)求處理方法,可以自動(dòng)確定數(shù)據(jù)分片的狀態(tài),無(wú)需人工確定,效率較高,同時(shí)也防止人工推送的過(guò)程中容易造成數(shù)據(jù)丟失的問(wèn)題。通過(guò)確定第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)分片的狀態(tài),然后根據(jù)確定的目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理,這里的業(yè)務(wù)請(qǐng)求為用于請(qǐng)求目標(biāo)數(shù)據(jù)分片對(duì)其進(jìn)行處理的請(qǐng)求。這樣,當(dāng)?shù)谝粩?shù)據(jù)庫(kù)中只有部分?jǐn)?shù)據(jù)分片處于故障狀態(tài)時(shí),可以用相應(yīng)的故障處理方式處理該部分?jǐn)?shù)據(jù)分片,不會(huì)影響到數(shù)據(jù)庫(kù)中的正常數(shù)據(jù)分片的使用,避免了現(xiàn)有技術(shù)中數(shù)據(jù)庫(kù)出現(xiàn)任何故障時(shí),會(huì)導(dǎo)致與故障數(shù)據(jù)庫(kù)中的所有業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)無(wú)法正常進(jìn)行的問(wèn)題。另外,基于數(shù)據(jù)分片維度的業(yè)務(wù)請(qǐng)求處理方法,也可以應(yīng)用于日常故障模擬,這樣,開(kāi)發(fā)人員可以單獨(dú)準(zhǔn)備某個(gè)數(shù)據(jù)分片進(jìn)行故障模擬,而不必對(duì)整個(gè)數(shù)據(jù)庫(kù)進(jìn)行故障模擬,防止故障模擬時(shí)對(duì)正常業(yè)務(wù)造成的影響。另外,基于本申請(qǐng)的業(yè)務(wù)請(qǐng)求處理方法,也可以支持服務(wù)器集群斷網(wǎng)這樣的機(jī)房級(jí)故障。需要說(shuō)明的是,本申請(qǐng)實(shí)施例所提供方法的各步驟的執(zhí)行主體均可以是同一設(shè)備,或者,該方法也由不同設(shè)備作為執(zhí)行主體。以上為本申請(qǐng)實(shí)施例提供的業(yè)務(wù)請(qǐng)求處理方法,基于同樣的思路,本申請(qǐng)實(shí)施例還提供相應(yīng)的業(yè)務(wù)請(qǐng)求處理裝置,如圖5所示,具體包括:確定單元301,確定第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)分片的狀態(tài);請(qǐng)求處理單元302,根據(jù)所述目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理,所述業(yè)務(wù)請(qǐng)求用于請(qǐng)求所述目標(biāo)數(shù)據(jù)分片對(duì)其進(jìn)行處理。上述裝置實(shí)施例的具體工作流程是,首先,確定單元301確定第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)分片的狀態(tài),然后請(qǐng)求處理單元302,根據(jù)所述目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理。本申請(qǐng)實(shí)施例中,業(yè)務(wù)請(qǐng)求處理裝置的具體實(shí)施方式有很多種,在一種實(shí)施方式中,所述目標(biāo)數(shù)據(jù)分片的狀態(tài),包括下述至少一種:正常狀態(tài)、故障狀態(tài)、故障復(fù)原狀態(tài),其中:所述正常狀態(tài),為與所述第一數(shù)據(jù)庫(kù)對(duì)應(yīng)的第一服務(wù)器能夠根據(jù)業(yè)務(wù)請(qǐng)求對(duì)相應(yīng)的數(shù)據(jù)分片進(jìn)行正常操作的狀態(tài);所述故障狀態(tài),為所述第一服務(wù)器無(wú)法根據(jù)業(yè)務(wù)請(qǐng)求對(duì)相應(yīng)的數(shù)據(jù)分片進(jìn)行正常操作的狀態(tài);所述故障復(fù)原狀態(tài),為所述業(yè)務(wù)請(qǐng)求相應(yīng)的數(shù)據(jù)分片的狀態(tài)從故障狀態(tài)切換至正常狀態(tài)。在一種實(shí)施方式中,若所述目標(biāo)數(shù)據(jù)分片處于正常狀態(tài),則請(qǐng)求處理單元302,將處理所述業(yè)務(wù)請(qǐng)求得到的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)至所述目標(biāo)數(shù)據(jù)分片中,并將所述業(yè)務(wù)數(shù)據(jù)備份到預(yù)設(shè)的第二數(shù)據(jù)庫(kù)中。為了防止在數(shù)據(jù)庫(kù)故障時(shí),與尚未備份的業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)無(wú)法正常進(jìn)行,在一種實(shí)施方式中,所述裝置還包括業(yè)務(wù)標(biāo)識(shí)保存單元203,在將所述業(yè)務(wù)數(shù)據(jù)備份到預(yù)設(shè)的第二數(shù)據(jù)庫(kù)中之前,將所述業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)標(biāo)識(shí)保存到業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中;為了防止同步備份影響對(duì)業(yè)務(wù)請(qǐng)求的處理速度,在一種實(shí)施方式中請(qǐng)求處理單元302,在設(shè)定時(shí)間到達(dá)時(shí),將所述業(yè)務(wù)數(shù)據(jù)備份至預(yù)設(shè)的第二數(shù)據(jù)庫(kù)中。在一種實(shí)施方式中,所述裝置還包括閾值單元204,在將所述業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)標(biāo)識(shí)保存到業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中時(shí),當(dāng)確定所述業(yè)務(wù)標(biāo)識(shí)在所述業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中存儲(chǔ)失敗時(shí),確定在所述設(shè)定時(shí)間內(nèi)所述業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的至少一個(gè)業(yè)務(wù)數(shù)據(jù)中包含的數(shù)據(jù)項(xiàng)的屬性值之和;在確定所述屬性值之和大于設(shè)定閾值時(shí),觸發(fā)所述業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的業(yè)務(wù)請(qǐng)求處理失敗。在一種實(shí)施方式中,所述裝置還包括業(yè)務(wù)標(biāo)識(shí)刪除單元205,在將所述業(yè)務(wù)數(shù)據(jù)備份至預(yù)設(shè)的第二數(shù)據(jù)庫(kù)中之后,當(dāng)所述業(yè)務(wù)數(shù)據(jù)成功備份至所述第二數(shù)據(jù)庫(kù)時(shí),將保存至所述業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中的、所述業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的所述業(yè)務(wù)標(biāo)識(shí)刪除。在一種實(shí)施方式中,請(qǐng)求處理單元302,將所述業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至第二服務(wù)器,指示所述第二服務(wù)器處理所述業(yè)務(wù)請(qǐng)求。在一種實(shí)施方式中,若所述業(yè)務(wù)請(qǐng)求用于請(qǐng)求對(duì)數(shù)據(jù)執(zhí)行更改操作,則當(dāng)所述業(yè)務(wù)標(biāo)識(shí)數(shù)據(jù)表中不存在所述業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的業(yè)務(wù)標(biāo)識(shí),且所述第二數(shù)據(jù)庫(kù)對(duì)處理所述業(yè)務(wù)請(qǐng)求得到的業(yè)務(wù)數(shù)據(jù)的冪等校驗(yàn)通過(guò),且預(yù)設(shè)的用戶標(biāo)識(shí)數(shù)據(jù)表中不存在所述業(yè)務(wù)請(qǐng)求中攜帶的用戶標(biāo)識(shí)時(shí),請(qǐng)求處理單元302,將處理所述業(yè)務(wù)請(qǐng)求得到的業(yè)務(wù)數(shù)據(jù)保存到第三數(shù)據(jù)庫(kù)中,并在預(yù)設(shè)的用戶標(biāo)識(shí)數(shù)據(jù)表中記錄所述業(yè)務(wù)請(qǐng)求中攜帶的用戶標(biāo)識(shí)。在一種實(shí)施方式中,若所述業(yè)務(wù)請(qǐng)求用于請(qǐng)求對(duì)數(shù)據(jù)執(zhí)行查找操作,則請(qǐng)求處理單元302,對(duì)所述第二數(shù)據(jù)庫(kù)和/或所述第三數(shù)據(jù)庫(kù)執(zhí)行查找操作。在一種實(shí)施方式中,若所述數(shù)據(jù)分片處于故障復(fù)原狀態(tài),則請(qǐng)求處理單元302,根據(jù)所述目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理,具體包括:當(dāng)所述業(yè)務(wù)請(qǐng)求到達(dá)第一服務(wù)器時(shí),若用戶標(biāo)識(shí)數(shù)據(jù)表中包含所述業(yè)務(wù)請(qǐng)求中攜帶的用戶標(biāo)識(shí),則將所述業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至第二服務(wù)器,并指示第二服務(wù)器處理該業(yè)務(wù)請(qǐng)求;若用戶標(biāo)識(shí)數(shù)據(jù)表中未包含所述業(yè)務(wù)請(qǐng)求中攜帶的用戶標(biāo)識(shí),則利用所述第一服務(wù)器對(duì)所述業(yè)務(wù)請(qǐng)求相應(yīng)的所述目標(biāo)數(shù)據(jù)分片執(zhí)行數(shù)據(jù)操作。在一種實(shí)施方式中,若所述數(shù)據(jù)分片處于故障復(fù)原狀態(tài),則請(qǐng)求處理單元302,當(dāng)所述業(yè)務(wù)請(qǐng)求到達(dá)第二服務(wù)器,且所述業(yè)務(wù)請(qǐng)求用于請(qǐng)求對(duì)數(shù)據(jù)執(zhí)行查找操作時(shí),若所述用戶標(biāo)識(shí)數(shù)據(jù)表中,保存有所述業(yè)務(wù)請(qǐng)求攜帶的用戶標(biāo)識(shí),則對(duì)所述第二數(shù)據(jù)庫(kù)和/或所述第三數(shù)據(jù)庫(kù)執(zhí)行查找類操作;若所述用戶標(biāo)識(shí)數(shù)據(jù)表中,沒(méi)有所述業(yè)務(wù)請(qǐng)求攜帶的用戶標(biāo)識(shí),則將業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至第一服務(wù)器,指示所述第一服務(wù)器處理所述業(yè)務(wù)請(qǐng)求。在一種實(shí)施方式中,若所述數(shù)據(jù)分片處于故障復(fù)原狀態(tài),則請(qǐng)求處理單元302,根據(jù)所述目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理,具體包括:當(dāng)所述業(yè)務(wù)請(qǐng)求到達(dá)第二服務(wù)器,且所述業(yè)務(wù)請(qǐng)求用于請(qǐng)求對(duì)數(shù)據(jù)執(zhí)行更改操作時(shí),若所述用戶標(biāo)識(shí)數(shù)據(jù)表中包含所述業(yè)務(wù)請(qǐng)求攜帶的用戶標(biāo)識(shí);則對(duì)所述第三數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)更改操作;若所述用戶標(biāo)識(shí)數(shù)據(jù)表中不包含所述業(yè)務(wù)請(qǐng)求攜帶的用戶標(biāo)識(shí),則將業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至第一服務(wù)器,并指示第一服務(wù)器處理該業(yè)務(wù)請(qǐng)求。在一種實(shí)施方式中,若所述數(shù)據(jù)分片處于故障復(fù)原狀態(tài),所述裝置包括數(shù)據(jù)遷移單元206,根據(jù)所述用戶標(biāo)識(shí)數(shù)據(jù)表中的用戶標(biāo)識(shí),分別將各用戶標(biāo)識(shí)對(duì)應(yīng)的第三數(shù)據(jù)庫(kù)中的業(yè)務(wù)數(shù)據(jù),遷移到與各用戶標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)分片中。在一種實(shí)施方式中,所述裝置還包括,用戶標(biāo)識(shí)刪除單元207,將已成功遷移的業(yè)務(wù)數(shù)據(jù)對(duì)應(yīng)的用戶標(biāo)識(shí),從用戶標(biāo)識(shí)數(shù)據(jù)表中刪除。在一種實(shí)施方式中,所述裝置還包括數(shù)據(jù)庫(kù)操作阻止單元208,當(dāng)所述用戶標(biāo)識(shí)數(shù)據(jù)表中的用戶標(biāo)識(shí)的數(shù)量小于預(yù)定數(shù)量時(shí),當(dāng)所述業(yè)務(wù)請(qǐng)求到達(dá)第二服務(wù)器,且所述業(yè)務(wù)請(qǐng)求用于請(qǐng)求對(duì)數(shù)據(jù)執(zhí)行更改操作時(shí),若所述用戶標(biāo)識(shí)數(shù)據(jù)表中包含所述業(yè)務(wù)請(qǐng)求攜帶的用戶標(biāo)識(shí),則阻止該數(shù)據(jù)庫(kù)操作;若所述用戶標(biāo)識(shí)數(shù)據(jù)表中不包含所述業(yè)務(wù)請(qǐng)求攜帶的用戶標(biāo)識(shí),則將業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)至第一服務(wù)器,并指派第一服務(wù)器處理所述業(yè)務(wù)請(qǐng)求。通過(guò)確定第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)分片的狀態(tài),然后根據(jù)確定的目標(biāo)數(shù)據(jù)分片的狀態(tài),對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行處理,這里的業(yè)務(wù)請(qǐng)求為用于請(qǐng)求目標(biāo)數(shù)據(jù)分片對(duì)其進(jìn)行處理的請(qǐng)求。這樣,當(dāng)?shù)谝粩?shù)據(jù)庫(kù)中只有部分?jǐn)?shù)據(jù)分片處于故障狀態(tài)時(shí),可以用相應(yīng)的故障處理方式處理該部分?jǐn)?shù)據(jù)分片,不會(huì)影響到數(shù)據(jù)庫(kù)中的正常數(shù)據(jù)分片的使用,避免了現(xiàn)有技術(shù)中數(shù)據(jù)庫(kù)出現(xiàn)任何故障時(shí),會(huì)導(dǎo)致與故障數(shù)據(jù)庫(kù)中的所有業(yè)務(wù)數(shù)據(jù)相關(guān)的業(yè)務(wù)無(wú)法正常進(jìn)行的問(wèn)題。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。在一個(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ù)來(lái)實(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è)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。還需要說(shuō)明的是,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、商品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、商品或者設(shè)備中還存在另外的相同要素。本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。以上所述僅為本申請(qǐng)的實(shí)施例而已,并不用于限制本申請(qǐng)。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的權(quán)利要求范圍之內(nèi)。當(dāng)前第1頁(yè)12