用于分布式系統(tǒng)的智能調(diào)度方法及分布式服務(wù)系統(tǒng)的制作方法
【專利摘要】本申請(qǐng)公開了一種用于分布式系統(tǒng)的智能調(diào)度方法,包括:負(fù)責(zé)處理客戶端異步請(qǐng)求的第一服務(wù)端,將接收到的異步請(qǐng)求的相關(guān)信息記錄在共享存儲(chǔ)中;當(dāng)監(jiān)控服務(wù)端監(jiān)測(cè)到所述第一服務(wù)端停止服務(wù)時(shí),由第二服務(wù)端執(zhí)行下述操作:從所述共享存儲(chǔ)中獲取所述第一服務(wù)端尚未處理的異步請(qǐng)求信息;根據(jù)所述異步請(qǐng)求信息,執(zhí)行相應(yīng)的處理操作。本申請(qǐng)同時(shí)提供一種分布式服務(wù)系統(tǒng)。采用本申請(qǐng)?zhí)峁┑闹悄苷{(diào)度方法,能夠有效解決服務(wù)停止場景下異步請(qǐng)求可能丟失的問題,保證業(yè)務(wù)執(zhí)行的正確性;同時(shí)由于異步請(qǐng)求的處理在服務(wù)端得到了有效保障,客戶端也無需等待超時(shí)并執(zhí)行查詢操作,其執(zhí)行效率也能得到相應(yīng)的提高。
【專利說明】
用于分布式系統(tǒng)的智能調(diào)度方法及分布式服務(wù)系統(tǒng)
技術(shù)領(lǐng)域
[0001]本申請(qǐng)涉及智能調(diào)度技術(shù),具體涉及一種用于分布式系統(tǒng)的智能調(diào)度方法。本申請(qǐng)同時(shí)涉及一種分布式服務(wù)系統(tǒng)。
【背景技術(shù)】
[0002]在分布式系統(tǒng)中,通常以集群形式將多臺(tái)服務(wù)器組織在一起,每臺(tái)服務(wù)器包括一個(gè)或者一個(gè)以上服務(wù)端(也稱為服務(wù)實(shí)例),每個(gè)服務(wù)端根據(jù)接收到的來自客戶端的請(qǐng)求,執(zhí)行相應(yīng)的處理動(dòng)作。客戶端和服務(wù)端之間的請(qǐng)求處理方式包括同步請(qǐng)求方式和異步請(qǐng)求方式。所謂同步請(qǐng)求方式是指,服務(wù)端接收到客戶端的請(qǐng)求后處理所述請(qǐng)求,并在處理完畢后才向客戶端返回應(yīng)答;異步請(qǐng)求方式是指,服務(wù)端接收到客戶端的請(qǐng)求后,立刻向客戶端返回應(yīng)答,之后才開始處理所述請(qǐng)求。
[0003]由此可見,對(duì)于需要消耗較多處理時(shí)間、資源的客戶端請(qǐng)求,如果采用異步請(qǐng)求的方式來處理,可以解決客戶端超時(shí)、服務(wù)端壓力不均衡等問題,還能提高客戶端的處理效率。
[0004]但是在服務(wù)端停止服務(wù)的情況下,如果采用同步請(qǐng)求方式,客戶端可以相對(duì)容易的獲知服務(wù)端狀態(tài),并采取路由策略重試,即可保證業(yè)務(wù)的正常執(zhí)行;而對(duì)于異步請(qǐng)求方式,由于客戶端提交請(qǐng)求的操作已經(jīng)完成,當(dāng)服務(wù)端停止服務(wù)時(shí),客戶端無法實(shí)時(shí)感知到服務(wù)端的當(dāng)前狀態(tài),自然也不會(huì)主動(dòng)嘗試重試策略,從而導(dǎo)致正在處理的客戶端請(qǐng)求可能被丟棄,無法保證請(qǐng)求得到有效的處理,業(yè)務(wù)的正確性也得不到有效保證。
[0005]針對(duì)異步請(qǐng)求方式存在的上述問題,現(xiàn)有技術(shù)通常采用以下兩種解決方案:
[0006](一 )由客戶端設(shè)置超時(shí)時(shí)間,超過超時(shí)時(shí)間后主動(dòng)進(jìn)行重試;
[0007]( 二)服務(wù)端負(fù)責(zé)保存異步請(qǐng)求的相關(guān)信息,并在重啟后重新處理。
[0008]上述兩種解決方案,在特定業(yè)務(wù)場景是可以滿足需求的,但是在普適場景就存在各自的缺陷。針對(duì)方案(一),由于超時(shí)時(shí)間的設(shè)置是固定的,如果設(shè)置的過長,可能造成客戶端長時(shí)間等待,影響客戶端效率;如果設(shè)置的過短,可能服務(wù)端還沒完成正常處理,因此客戶端需要反復(fù)重試,依然影響效率。針對(duì)方案(二),如果服務(wù)端由于設(shè)備故障等問題未能重啟,那么該服務(wù)端尚未處理的異步請(qǐng)求依然會(huì)被丟棄。
【發(fā)明內(nèi)容】
[0009]本申請(qǐng)?zhí)峁┮环N用于分布式系統(tǒng)的智能調(diào)度方法,以解決服務(wù)端停止服務(wù)時(shí)尚未處理的異步請(qǐng)求可能會(huì)丟失、以及客戶端無法進(jìn)行有效處理的問題。本申請(qǐng)另外提供一種分布式服務(wù)系統(tǒng)。
[0010]本申請(qǐng)?zhí)峁┮环N用于分布式系統(tǒng)的智能調(diào)度方法,包括:
[0011]負(fù)責(zé)處理客戶端異步請(qǐng)求的第一服務(wù)端,將接收到的異步請(qǐng)求的相關(guān)信息記錄在共享存儲(chǔ)中;
[0012]當(dāng)監(jiān)控服務(wù)端監(jiān)測(cè)到所述第一服務(wù)端停止服務(wù)時(shí),由第二服務(wù)端執(zhí)行下述操作:
[0013]從所述共享存儲(chǔ)中獲取所述第一服務(wù)端尚未處理的異步請(qǐng)求信息;
[0014]根據(jù)所述異步請(qǐng)求信息,執(zhí)行相應(yīng)的處理操作。
[0015]可選的,所述異步請(qǐng)求的相關(guān)信息包括:從客戶端接收到的異步請(qǐng)求信息、和負(fù)責(zé)處理所述異步請(qǐng)求的第一服務(wù)端標(biāo)識(shí)。
[0016]可選的,所述共享存儲(chǔ)包括:分布式緩存、或者數(shù)據(jù)庫。
[0017]可選的,所述監(jiān)控服務(wù)端為注冊(cè)中心服務(wù)器;
[0018]所述注冊(cè)中心服務(wù)器監(jiān)測(cè)到所述第一服務(wù)端停止服務(wù)時(shí),首先執(zhí)行下述操作:
[0019]按照預(yù)先設(shè)定的策略選擇所述第二服務(wù)端;
[0020]向所述第二服務(wù)端推送執(zhí)行重試操作的通知,所述通知中包含所述第一服務(wù)端標(biāo)識(shí)。
[0021]可選的,所述注冊(cè)中心服務(wù)器采用如下方式監(jiān)測(cè)各服務(wù)端的狀態(tài):
[0022]通過監(jiān)測(cè)心跳數(shù)據(jù)包的方式,監(jiān)測(cè)各服務(wù)端的狀態(tài);或者,
[0023]通過監(jiān)測(cè)長連接狀態(tài)的方式,監(jiān)測(cè)各服務(wù)端的狀態(tài)。
[0024]可選的,所述注冊(cè)中心服務(wù)器為zooke^er服務(wù)器。
[0025]可選的,所述監(jiān)控服務(wù)端是按照預(yù)先設(shè)定的策略從負(fù)責(zé)處理客戶端異步請(qǐng)求的服務(wù)端中指定的,所述第二服務(wù)端為所述監(jiān)控服務(wù)端。
[0026]可選的,所述異步請(qǐng)求的相關(guān)信息還包括:負(fù)責(zé)處理所述異步請(qǐng)求的第一服務(wù)端的IP地址和網(wǎng)絡(luò)端口標(biāo)識(shí);
[0027]所述監(jiān)控服務(wù)端采用如下方式監(jiān)測(cè)各服務(wù)端的狀態(tài):
[0028]根據(jù)共享存儲(chǔ)中記錄的信息,定期檢查各服務(wù)端的網(wǎng)絡(luò)端口狀態(tài)。
[0029]可選的,在執(zhí)行所述根據(jù)所述異步請(qǐng)求信息執(zhí)行相應(yīng)的處理操作的步驟后,執(zhí)行下述操作:
[0030]從所述共享存儲(chǔ)中刪除所述異步請(qǐng)求信息。
[0031]相應(yīng)的,本申請(qǐng)還提供一種分布式服務(wù)系統(tǒng),包括:
[0032]服務(wù)單元,用于接收客戶端的異步請(qǐng)求,將所述異步請(qǐng)求的相關(guān)信息記錄在共享存儲(chǔ)中,并執(zhí)行相應(yīng)的處理操作;
[0033]監(jiān)控單元,用于監(jiān)控各服務(wù)單元的工作狀態(tài);
[0034]重試單元,用于在所述監(jiān)控單元監(jiān)測(cè)到本系統(tǒng)中的服務(wù)單元停止服務(wù)時(shí),從所述共享存儲(chǔ)中獲取所述停止服務(wù)的服務(wù)單元尚未處理的異步請(qǐng)求信息,并執(zhí)行相應(yīng)的處理操作。
[0035]可選的,所述系統(tǒng)中的服務(wù)單元部署于服務(wù)器,每個(gè)服務(wù)器包括至少一個(gè)服務(wù)單
J L ο
[0036]可選的,所述服務(wù)單元記錄的異步請(qǐng)求的相關(guān)信息包括:從客戶端接收到的異步請(qǐng)求信息、和負(fù)責(zé)處理所述請(qǐng)求的服務(wù)單元標(biāo)識(shí)。
[0037]可選的,所述共享存儲(chǔ)包括:分布式緩存、或者數(shù)據(jù)庫。
[0038]可選的,所述監(jiān)控單元部署在注冊(cè)中心服務(wù)器;
[0039]所述監(jiān)控單元還用于在監(jiān)測(cè)到本系統(tǒng)中的服務(wù)單元停止服務(wù)時(shí),按照預(yù)先設(shè)定的策略從本系統(tǒng)中選擇一個(gè)服務(wù)單元作為重試單元,并向所選重試單元推送執(zhí)行重試操作的通知,所述通知中包含所述停止服務(wù)的服務(wù)單元標(biāo)識(shí)。
[0040]可選的,所述監(jiān)控單元具體用于,通過監(jiān)測(cè)心跳數(shù)據(jù)包或者監(jiān)測(cè)長連接狀態(tài)的方式,監(jiān)測(cè)各服務(wù)單元的狀態(tài)。
[0041]可選的,所述注冊(cè)中心服務(wù)器為zooke^er服務(wù)器。
[0042]可選的,所述分布式服務(wù)系統(tǒng)中至少一個(gè)服務(wù)單元包括所述監(jiān)控單元;所述重試單元為包括所述監(jiān)控單元的服務(wù)單元。
[0043]可選的,所述服務(wù)單元記錄的異步請(qǐng)求的相關(guān)信息還包括:負(fù)責(zé)處理所述異步請(qǐng)求的服務(wù)單元的IP地址和網(wǎng)絡(luò)端口標(biāo)識(shí);
[0044]所述監(jiān)控單元具體用于根據(jù)共享存儲(chǔ)中記錄的信息,定期檢查各服務(wù)單元的網(wǎng)絡(luò)端口狀態(tài),從而獲知各服務(wù)單元的工作狀態(tài)。
[0045]可選的,所述重試單元還用于,在執(zhí)行相應(yīng)的處理操作后,從所述共享存儲(chǔ)中刪除所述異步請(qǐng)求信息。
[0046]與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn):
[0047]本申請(qǐng)?zhí)峁┑挠糜诜植际较到y(tǒng)的智能調(diào)度方法,由負(fù)責(zé)處理客戶端異步請(qǐng)求的第一服務(wù)端,將接收到的異步請(qǐng)求的相關(guān)信息記錄在共享存儲(chǔ)中,當(dāng)監(jiān)控服務(wù)端監(jiān)測(cè)到所述第一服務(wù)端停止服務(wù)時(shí),由第二服務(wù)端從所述共享存儲(chǔ)中獲取所述第一服務(wù)端尚未處理的異步請(qǐng)求信息,并執(zhí)行相應(yīng)的處理操作。上述技術(shù)方案,提供了一種在分布式系統(tǒng)中針對(duì)異步請(qǐng)求的智能調(diào)度方法,充分地利用了分布式服務(wù)的集群優(yōu)勢(shì),在監(jiān)測(cè)到某一服務(wù)端停止服務(wù)時(shí),由其他服務(wù)端接替其處理異步請(qǐng)求,從而有效解決了服務(wù)停止場景下異步請(qǐng)求可能丟失的問題,保證業(yè)務(wù)執(zhí)行的正確性;同時(shí)由于異步請(qǐng)求的處理在服務(wù)端得到了有效保障,客戶端也無需等待超時(shí)并執(zhí)行查詢操作,其執(zhí)行效率也能得到相應(yīng)的提高。
【附圖說明】
[0048]圖1是本申請(qǐng)的一種用于分布式系統(tǒng)的智能調(diào)度方法的第一實(shí)施例的流程圖;
[0049]圖2是本申請(qǐng)的一種用于分布式系統(tǒng)的智能調(diào)度方法的第二實(shí)施例的流程圖;
[0050]圖3是本申請(qǐng)的一種分布式服務(wù)系統(tǒng)的實(shí)施例的示意圖。
【具體實(shí)施方式】
[0051]在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本申請(qǐng)。但是本申請(qǐng)能夠以很多不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本申請(qǐng)內(nèi)涵的情況下做類似推廣,因此本申請(qǐng)不受下面公開的具體實(shí)施的限制。
[0052]在本申請(qǐng)中,分別提供了一種用于分布式系統(tǒng)的智能調(diào)度方法、以及一種分布式服務(wù)系統(tǒng),在下面的實(shí)施例中逐一進(jìn)行詳細(xì)說明。
[0053]請(qǐng)參考圖1,其為本申請(qǐng)的一種用于分布式系統(tǒng)的智能調(diào)度方法的實(shí)施例的流程圖,在本實(shí)施例中,采用集中監(jiān)控模式(也稱中心服務(wù)推送模式),由作為監(jiān)控服務(wù)端的注冊(cè)中心服務(wù)器負(fù)責(zé)監(jiān)控系統(tǒng)內(nèi)各服務(wù)端的工作狀態(tài),并在某服務(wù)端停止服務(wù)的情況下通知其他服務(wù)端接替其進(jìn)行異步請(qǐng)求的處理。所述方法包括如下步驟:
[0054]步驟101:負(fù)責(zé)處理客戶端異步請(qǐng)求的第一服務(wù)端,將接收到的異步請(qǐng)求的相關(guān)信息記錄在共享存儲(chǔ)中。
[0055]本實(shí)施例所述的服務(wù)端是指,根據(jù)接收到的客戶端請(qǐng)求執(zhí)行相應(yīng)的處理、從而為客戶端提供其所需服務(wù)的應(yīng)用程序,也可以稱作服務(wù)實(shí)例,例如提供數(shù)據(jù)庫服務(wù)的服務(wù)實(shí)例、提供文件服務(wù)的服務(wù)實(shí)例、提供web服務(wù)的服務(wù)實(shí)例、以及其他基于業(yè)務(wù)定制的服務(wù)實(shí)例,都屬于本實(shí)施例所述的服務(wù)端。在具體實(shí)施中,服務(wù)端通常在服務(wù)器上運(yùn)行,一個(gè)服務(wù)器上可以運(yùn)行一個(gè)或者一個(gè)以上的服務(wù)端。
[0056]在本實(shí)施例中,負(fù)責(zé)處理客戶端異步請(qǐng)求的某服務(wù)端,即本實(shí)施例所述的第一服務(wù)端,在接收異步請(qǐng)求后,不僅按照常規(guī)的異步請(qǐng)求處理方式,向客戶端返回異步請(qǐng)求接受完畢的應(yīng)答,而且將所述異步請(qǐng)求的相關(guān)信息記錄在共享存儲(chǔ)中。
[0057]本實(shí)施例所述的異步請(qǐng)求的相關(guān)信息包括:從客戶端接收到的異步請(qǐng)求信息、和負(fù)責(zé)處理所述異步請(qǐng)求的第一服務(wù)端的服務(wù)端標(biāo)識(shí)。所述服務(wù)端標(biāo)識(shí)是指,能夠在分布式系統(tǒng)中區(qū)別各個(gè)服務(wù)端的標(biāo)識(shí)信息,例如可以用“服務(wù)端名稱+序列號(hào)”作為服務(wù)端標(biāo)識(shí),其中服務(wù)端名稱可以是預(yù)先指定的,序列號(hào)則可以采用遞增的自然數(shù)或者是啟動(dòng)時(shí)獲取的隨機(jī)數(shù)。在具體的實(shí)施中,也可以采用其他服務(wù)端標(biāo)識(shí)形式,只要能夠唯一的標(biāo)識(shí)服務(wù)端即可。
[0058]本實(shí)施例所述的共享存儲(chǔ)是指,分布式系統(tǒng)中各服務(wù)端都可以訪問的共享數(shù)據(jù)存儲(chǔ)空間,例如分布式緩存。分布式緩存可能在物理上分布于多個(gè)單獨(dú)的物理設(shè)備中,但是卻為使用緩存的各服務(wù)端提供了一個(gè)單一的高速緩存的邏輯視圖,從而各服務(wù)端可以方便地訪問同一個(gè)緩存并通過緩存實(shí)現(xiàn)數(shù)據(jù)共享。
[0059]此外,也可以采用數(shù)據(jù)庫作為共享存儲(chǔ),例如采用基于key-value架構(gòu)的數(shù)據(jù)庫,可以將服務(wù)端標(biāo)識(shí)作為key,將所述服務(wù)端負(fù)責(zé)處理的異步請(qǐng)求信息作為value存儲(chǔ)在數(shù)據(jù)庫中。
[0060]由于一個(gè)服務(wù)端可能在短時(shí)間內(nèi)接收到多個(gè)待處理的異步請(qǐng)求,因此在共享存儲(chǔ)中,與某一個(gè)服務(wù)端標(biāo)識(shí)對(duì)應(yīng)的異步請(qǐng)求信息可能有多條,也可以采用隊(duì)列的方式存儲(chǔ)與服務(wù)端標(biāo)識(shí)對(duì)應(yīng)的異步請(qǐng)求信息。上面給出了在共享存儲(chǔ)中記錄異步請(qǐng)求信息的幾種方式,在具體實(shí)施中,也可以采用其他存儲(chǔ)方式,只要能夠滿足分布式系統(tǒng)中各服務(wù)端的共享訪問需求即可。
[0061]步驟102:注冊(cè)中心服務(wù)器監(jiān)測(cè)到所述第一服務(wù)端停止服務(wù)后,通知第二服務(wù)端。
[0062]在本實(shí)施例中,負(fù)責(zé)監(jiān)控各服務(wù)端工作狀態(tài)的任務(wù)由注冊(cè)中心服務(wù)器實(shí)現(xiàn),所述注冊(cè)中心服務(wù)器是分布式系統(tǒng)中的一個(gè)集中管理者。分布式系統(tǒng)中每個(gè)服務(wù)端在啟動(dòng)時(shí),可以向所述注冊(cè)中心服務(wù)器進(jìn)行注冊(cè),例如上報(bào)自己的標(biāo)識(shí)、服務(wù)類型等信息,之后采用特定的機(jī)制與所述注冊(cè)中心服務(wù)器保持聯(lián)絡(luò),從而注冊(cè)中心服務(wù)器能夠監(jiān)測(cè)各服務(wù)端的工作狀態(tài)。
[0063]具體說,注冊(cè)中心服務(wù)器可以采用心跳檢查的方式監(jiān)測(cè)各服務(wù)端的狀態(tài)。各服務(wù)端在正常工作狀態(tài)下,按照預(yù)先設(shè)定的間隔時(shí)間定期向所述注冊(cè)中心服務(wù)器發(fā)送心跳數(shù)據(jù)包,注冊(cè)中心服務(wù)器如果定期接收到所述心跳數(shù)據(jù)包,則認(rèn)為對(duì)應(yīng)的服務(wù)端處于提供服務(wù)的正常狀態(tài),如果在預(yù)先設(shè)定的一段時(shí)間內(nèi)未接收到某服務(wù)端的心跳數(shù)據(jù)包,則認(rèn)為該服務(wù)端處于停止服務(wù)的異常狀態(tài),例如,服務(wù)端因?yàn)檐浖收蠠o法提供服務(wù),或者服務(wù)端所在設(shè)備宕機(jī)等。
[0064]此外,注冊(cè)中心服務(wù)器也可以采用檢查長連接狀態(tài)的方式監(jiān)測(cè)各服務(wù)端的狀態(tài)。分布式系統(tǒng)中的各服務(wù)端可以在啟動(dòng)后,與所述注冊(cè)中心服務(wù)器之間建立TCP長連接,并保持長連接狀態(tài)。一旦注冊(cè)中心服務(wù)器發(fā)現(xiàn)與某服務(wù)端之間的長連接斷開了,例如注冊(cè)中心服務(wù)器基于對(duì)應(yīng)長連接發(fā)送的探測(cè)報(bào)文沒有收到響應(yīng),則認(rèn)為該服務(wù)端處于停止服務(wù)的異常狀態(tài)。
[0065]在本實(shí)施例中,所述第一服務(wù)端在記錄了接收到的異步請(qǐng)求的相關(guān)信息后,由于發(fā)生故障無法對(duì)外提供服務(wù)。這種情況下,注冊(cè)中心服務(wù)器通過上述方式或者其他機(jī)制檢測(cè)到所述第一服務(wù)端停止服務(wù)時(shí),可以向分布式系統(tǒng)內(nèi)的第二服務(wù)端(也稱重試服務(wù)端)發(fā)送重試通知,所述第二服務(wù)端負(fù)責(zé)重新處理所述第一服務(wù)端尚未處理的異步請(qǐng)求。
[0066]在具體實(shí)施時(shí),考慮到系統(tǒng)資源的優(yōu)化利用,可以不在分布式系統(tǒng)內(nèi)部設(shè)置專門的第二服務(wù)端,而是由注冊(cè)中心服務(wù)器按照預(yù)先設(shè)定的策略,從負(fù)責(zé)處理客戶端異步請(qǐng)求的服務(wù)端中選擇一個(gè)作為所述第二服務(wù)端,并向所述第二服務(wù)端推送執(zhí)行重試操作的通知。
[0067]所述預(yù)先設(shè)定的策略,可以采用round-robin策略,按照一定的順序輪流從各服務(wù)端中選擇一個(gè)作為所述第二服務(wù)端,也可以采用基于負(fù)載均衡的選擇策略,從各個(gè)服務(wù)端中選擇一個(gè)相對(duì)空閑的服務(wù)端作為所述第二服務(wù)端,還可以隨機(jī)地從各個(gè)服務(wù)端中進(jìn)行選擇。
[0068]在向所述第二服務(wù)端推送執(zhí)行重試操作的通知中,可以包含所述第一服務(wù)端標(biāo)識(shí),以便于所述第二服務(wù)端從共享存儲(chǔ)中獲取相應(yīng)的需要執(zhí)行重試操作的異步請(qǐng)求信息。
[0069]在具體實(shí)施中,可以采用zook^per服務(wù)器作為所述注冊(cè)中心服務(wù)器,負(fù)責(zé)管理分布式系統(tǒng)中的各服務(wù)端、監(jiān)測(cè)各服務(wù)端的工作狀態(tài)。
[0070]步驟103:所述第二服務(wù)端從所述共享存儲(chǔ)中獲取所述第一服務(wù)端尚未處理的異步請(qǐng)求信息。
[0071]所述第二服務(wù)端接收注冊(cè)中心服務(wù)器推送的執(zhí)行重試操作的通知后,可以從該通知中提取所述第一服務(wù)端的標(biāo)識(shí),然后根據(jù)該服務(wù)端標(biāo)識(shí)從所述共享緩存中獲取該服務(wù)端尚未處理的異步請(qǐng)求信息。
[0072]在具體實(shí)施中,根據(jù)所采用的共享緩存的不同,本步驟獲取異步請(qǐng)求信息的方式也不同。例如,對(duì)于采用基于key-value架構(gòu)的數(shù)據(jù)庫作為共享存儲(chǔ)的實(shí)施方式,則可以用所述第一服務(wù)端標(biāo)識(shí)作為輸入,通過get()或者類似的接口,從數(shù)據(jù)庫中獲取所述第一服務(wù)端尚未處理的異步請(qǐng)求信息。從共享存儲(chǔ)中獲取的對(duì)應(yīng)于所述第一服務(wù)端標(biāo)識(shí)的異步請(qǐng)求?目息可以是一條或者是多條。
[0073]步驟104:所述第二服務(wù)端根據(jù)所述異步請(qǐng)求信息,執(zhí)行相應(yīng)的處理操作。
[0074]所述第二服務(wù)端獲取了所述第一服務(wù)端尚未處理的異步請(qǐng)求信息后,根據(jù)所述異步請(qǐng)求信息中記錄的請(qǐng)求內(nèi)容,執(zhí)行相應(yīng)的處理操作,例如,執(zhí)行數(shù)據(jù)庫更新操作,或者是其他業(yè)務(wù)相關(guān)的操作。正常情況下,由接收該異步請(qǐng)求的第一服務(wù)端負(fù)責(zé)執(zhí)行相應(yīng)的處理操作,由于該服務(wù)端停止服務(wù),而由注冊(cè)中心服務(wù)器選擇的第二服務(wù)端接替其執(zhí)行相應(yīng)的處理操作,可以認(rèn)為是一個(gè)重新嘗試的過程,因此該過程也被稱為異步請(qǐng)求的重試過程。
[0075]如果在步驟103中獲取了多條異步請(qǐng)求信息,那么在本步驟中可以逐一地執(zhí)行相應(yīng)的處理操作,從而保證每一個(gè)來自客戶端的異步請(qǐng)求都得到有效的處理,而不會(huì)因?yàn)樗龅谝环?wù)端停止服務(wù),導(dǎo)致客戶端異步請(qǐng)求被丟棄。
[0076]此外,所述第二服務(wù)端針對(duì)從共享存儲(chǔ)中獲取的異步請(qǐng)求信息,執(zhí)行相應(yīng)的處理操作后,為了避免重復(fù)處理,影響執(zhí)行效率,該服務(wù)端可以從所述共享存儲(chǔ)中刪除所述異步請(qǐng)求信息。如果與所述第一服務(wù)端標(biāo)識(shí)對(duì)應(yīng)的異步請(qǐng)求信息有多條,則可以每處理完畢一條,從所述共享存儲(chǔ)中刪除一條,當(dāng)與所述第一服務(wù)端標(biāo)識(shí)對(duì)應(yīng)的異步請(qǐng)求都處理完畢,則可以從共享存儲(chǔ)中刪除所述第一服務(wù)端標(biāo)識(shí)。
[0077]至此,提供了用于分布式系統(tǒng)的智能調(diào)度方法的一個(gè)具體的實(shí)施例,在本實(shí)施例中由注冊(cè)中心服務(wù)器實(shí)現(xiàn)對(duì)系統(tǒng)內(nèi)部各服務(wù)端的集中管理與監(jiān)控,并在監(jiān)測(cè)到某服務(wù)端停止服務(wù)時(shí),通知其他服務(wù)端重新執(zhí)行未被處理的異步請(qǐng)求,從而保證了在服務(wù)端停止服務(wù)的情況下,異步請(qǐng)求依然能夠得到有效的處理。
[0078]與上述的一種用于分布式系統(tǒng)的智能調(diào)度方法實(shí)施例相對(duì)應(yīng)的,本申請(qǐng)還提供了所述方法的另一種實(shí)施例。請(qǐng)參考圖2,其為本申請(qǐng)?zhí)峁┑囊环N用于分布式系統(tǒng)的智能調(diào)度方法的第二實(shí)施例的流程圖,在本實(shí)施例中,采用分布式服務(wù)查詢模式,由負(fù)責(zé)處理客戶端異步請(qǐng)求的某一服務(wù)端作為監(jiān)控服務(wù)端,定期檢查各服務(wù)端的網(wǎng)絡(luò)端口是否正常,并在監(jiān)測(cè)到停止服務(wù)的情況時(shí),自行執(zhí)行重試操作。本實(shí)施例與上述第一實(shí)施例步驟相同的部分不再贅述,下面重點(diǎn)描述不同之處。
[0079]本申請(qǐng)?zhí)峁┑囊环N用于分布式系統(tǒng)的智能調(diào)度方法包括:
[0080]步驟201:負(fù)責(zé)處理客戶端異步請(qǐng)求的第一服務(wù)端,將接收到的異步請(qǐng)求的相關(guān)信息記錄在共享存儲(chǔ)中。
[0081]本步驟與第一實(shí)施例步驟101基本相同,請(qǐng)參見第一實(shí)施例的相關(guān)描述。
[0082]需要說明的是,為了便于后續(xù)步驟202執(zhí)行監(jiān)控操作,本步驟寫入共享存儲(chǔ)的關(guān)于異步請(qǐng)求的相關(guān)信息還包括:負(fù)責(zé)處理所述異步請(qǐng)求的第一服務(wù)端的IP地址和網(wǎng)絡(luò)端口標(biāo)識(shí),所述網(wǎng)絡(luò)端口標(biāo)識(shí)是指第一服務(wù)端對(duì)外提供服務(wù)的端口號(hào)。
[0083]步驟202:監(jiān)控服務(wù)端監(jiān)測(cè)服務(wù)端的工作狀態(tài),并在監(jiān)測(cè)到所述第一服務(wù)端停止服務(wù)時(shí),執(zhí)行步驟203。
[0084]本實(shí)施例與第一實(shí)施例的不同之處在于,對(duì)各服務(wù)端工作狀態(tài)進(jìn)行監(jiān)控所采用的方式不同,第一實(shí)施例采用集中管理模式,而本實(shí)施例采用分布式查詢模式。由于未采用集中管理模式,因此本實(shí)施例可以不在分布式系統(tǒng)中設(shè)置集中的管理與監(jiān)控中心,而是由負(fù)責(zé)處理客戶端異步請(qǐng)求的服務(wù)端負(fù)責(zé)進(jìn)行監(jiān)控。
[0085]本實(shí)施例所述的監(jiān)控服務(wù)端,可以是按照預(yù)先設(shè)定的策略從所述負(fù)責(zé)處理客戶端異步請(qǐng)求的服務(wù)端中指定的。在具體實(shí)施時(shí),可以預(yù)先設(shè)定由各服務(wù)端輪流承擔(dān)所述監(jiān)控任務(wù),例如,8點(diǎn)至9點(diǎn)由I號(hào)服務(wù)端承擔(dān)監(jiān)控任務(wù),9點(diǎn)至10點(diǎn)由2號(hào)服務(wù)端承擔(dān)監(jiān)控任務(wù),10點(diǎn)至11點(diǎn)由3號(hào)服務(wù)端承擔(dān)監(jiān)控任務(wù)......依此類推,各服務(wù)端輪流充當(dāng)監(jiān)控服務(wù)端的角色。這里給出的只是一個(gè)具體的例子,在其他實(shí)施方式中,每個(gè)服務(wù)端承擔(dān)監(jiān)控任務(wù)的時(shí)間粒度可以根據(jù)需求進(jìn)行調(diào)整,也可以采用其他策略進(jìn)行指定,或者隨機(jī)指定一個(gè)服務(wù)端同樣可以實(shí)現(xiàn)本申請(qǐng)的技術(shù)方案。
[0086]負(fù)責(zé)執(zhí)行監(jiān)控任務(wù)的服務(wù)端,則可以按照一定的時(shí)間間隔定期從共享存儲(chǔ)中獲取當(dāng)前提供服務(wù)的各服務(wù)端的網(wǎng)絡(luò)信息,例如IP地址和端口號(hào),并檢查各服務(wù)端的網(wǎng)絡(luò)端口是否正常。例如,定期根據(jù)各服務(wù)端的IP地址和端口號(hào),向各服務(wù)端的端口發(fā)送測(cè)試報(bào)文,如果在預(yù)先設(shè)定的時(shí)間段內(nèi)接收到某服務(wù)端的應(yīng)答,則可以認(rèn)為該服務(wù)端的網(wǎng)絡(luò)端口處于正常狀態(tài),該服務(wù)端處于提供服務(wù)的正常狀態(tài);反之,如果在預(yù)先設(shè)定的時(shí)間段內(nèi)沒有接收到某服務(wù)端的應(yīng)答,則可以認(rèn)為該服務(wù)端的網(wǎng)絡(luò)端口處于非正常狀態(tài),因此可以進(jìn)一步認(rèn)為該服務(wù)端處于停止服務(wù)的異常狀態(tài)。
[0087]在本步驟中,如果監(jiān)控服務(wù)端監(jiān)測(cè)到所述第一服務(wù)端停止服務(wù),則執(zhí)行后續(xù)的步驟203和204進(jìn)行相應(yīng)的重試操作。
[0088]步驟203:所述監(jiān)控服務(wù)端從所述共享存儲(chǔ)中獲取所述第一服務(wù)端尚未處理的異步請(qǐng)求信息。
[0089]由于本實(shí)施例中由負(fù)責(zé)處理異步請(qǐng)求的服務(wù)端承擔(dān)監(jiān)控任務(wù),即:監(jiān)控服務(wù)端本身具備處理異步請(qǐng)求的能力,因此本實(shí)施例中不需要再指派或者通知其他服務(wù)端執(zhí)行重試操作,而是由監(jiān)控服務(wù)端自己完成所述重試操作。
[0090]在本步驟中,所述監(jiān)控服務(wù)端從所述共享緩存中獲取需要執(zhí)行重試操作的異步請(qǐng)求信息,其處理過程與第一實(shí)施例中的步驟103基本相同,請(qǐng)參見第一實(shí)施例的相關(guān)描述。
[0091]步驟204:所述監(jiān)控服務(wù)端根據(jù)所述異步請(qǐng)求的相關(guān)信息,執(zhí)行相應(yīng)的處理操作。
[0092]本步驟與第一實(shí)施例的步驟104的處理過程基本相同,請(qǐng)參見第一實(shí)施例的相關(guān)描述。
[0093]上述步驟201至步驟204,提供了用于分布式系統(tǒng)的智能調(diào)度方法的另一個(gè)具體的實(shí)施例,在本實(shí)施例中由負(fù)責(zé)處理客戶端異步請(qǐng)求的服務(wù)端承擔(dān)監(jiān)控任務(wù),采用分布式服務(wù)查詢模式監(jiān)測(cè)系統(tǒng)內(nèi)各服務(wù)端的狀態(tài),并在監(jiān)測(cè)到某服務(wù)端停止服務(wù)時(shí),重新執(zhí)行未被處理的異步請(qǐng)求,從而保證了在服務(wù)端停止服務(wù)的情況下,異步請(qǐng)求依然能夠得到有效的處理。
[0094]需要說明的是,本申請(qǐng)?zhí)峁┑闹悄苷{(diào)度方法,通常應(yīng)用于分布式系統(tǒng)中。分布式系統(tǒng)通常是指由多個(gè)計(jì)算機(jī)或者服務(wù)器通過網(wǎng)絡(luò)互聯(lián)組成的系統(tǒng),而本申請(qǐng)所述的分布式系統(tǒng)則是一個(gè)相對(duì)寬泛的概念,如果一個(gè)系統(tǒng)包括了兩個(gè)或者兩個(gè)以上為客戶端提供服務(wù)的服務(wù)端,所述服務(wù)端可以在同一臺(tái)物理設(shè)備上(例如同一臺(tái)服務(wù)器上),也可以分布在不同的物理設(shè)備上,只要所述服務(wù)端能夠在整個(gè)系統(tǒng)的控制下協(xié)同地為客戶端透明地提供服務(wù),這些服務(wù)端就組成了本申請(qǐng)所述的分布式系統(tǒng),而與其在物理設(shè)備上的具體分布情況無關(guān)。
[0095]綜上所述,本申請(qǐng)的技術(shù)方案,提供了一種在分布式系統(tǒng)中針對(duì)異步請(qǐng)求的智能調(diào)度方法,充分地利用了分布式服務(wù)的集群優(yōu)勢(shì),在通過集中監(jiān)控模式或者分布式服務(wù)查詢模式等方式,監(jiān)測(cè)到某一服務(wù)端停止服務(wù)時(shí),由其他服務(wù)端接替其處理異步請(qǐng)求,從而有效解決了服務(wù)停止場景下異步請(qǐng)求可能丟失的問題,保證業(yè)務(wù)執(zhí)行的正確性;同時(shí)由于異步請(qǐng)求的處理在服務(wù)端得到了有效保障,客戶端也無需等待超時(shí)并執(zhí)行查詢操作,其執(zhí)行效率也能得到相應(yīng)的提高。
[0096]在上述的實(shí)施例中,提供了一種用于分布式系統(tǒng)的智能調(diào)度方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種分布式服務(wù)系統(tǒng)。請(qǐng)參看圖3,其為本申請(qǐng)的一種分布式服務(wù)系統(tǒng)的實(shí)施例示意圖。該系統(tǒng)包括:服務(wù)單元301,用于接收客戶端的異步請(qǐng)求,將所述異步請(qǐng)求的相關(guān)信息記錄在共享存儲(chǔ)中,并執(zhí)行相應(yīng)的處理操作;監(jiān)控單元302,用于監(jiān)控各服務(wù)單元的工作狀態(tài);重試單元303,用于在所述監(jiān)控單元監(jiān)測(cè)到本系統(tǒng)中的服務(wù)單元停止服務(wù)時(shí),從所述共享存儲(chǔ)中獲取所述停止服務(wù)的服務(wù)單元尚未處理的異步請(qǐng)求信息,并執(zhí)行相應(yīng)的處理操作。
[0097]在具體實(shí)施時(shí),所述服務(wù)單元可以部署于服務(wù)器,每個(gè)服務(wù)器包括至少一個(gè)服務(wù)單元。服務(wù)單元將來自客戶端的異步請(qǐng)求的相關(guān)信息,包括從客戶端接收到的異步請(qǐng)求信息、和負(fù)責(zé)處理所述請(qǐng)求的服務(wù)單元標(biāo)識(shí),記錄在共享存儲(chǔ)中,所述共享存儲(chǔ)包括:分布式緩存或者數(shù)據(jù)庫。
[0098]在具體實(shí)施本系統(tǒng)時(shí),可以采用集中監(jiān)控模式。所述監(jiān)控單元可以部署在注冊(cè)中心服務(wù)器,例如zookeeper服務(wù)器。所述監(jiān)控單元通過監(jiān)測(cè)心跳數(shù)據(jù)包或者監(jiān)測(cè)長連接狀態(tài)的方式,監(jiān)測(cè)各服務(wù)單元的狀態(tài),并在監(jiān)測(cè)到某服務(wù)單元停止服務(wù)時(shí),按照預(yù)先設(shè)定的策略從所述分布式服務(wù)系統(tǒng)中選擇一個(gè)服務(wù)單元作為重試單元,并向所選重試單元推送執(zhí)行重試操作的通知,所述通知中可以包含所述停止服務(wù)的服務(wù)單元標(biāo)識(shí)。所述重試單元接收到上述通知后,從共享存儲(chǔ)中獲取停止服務(wù)的服務(wù)單元尚未處理的異步請(qǐng)求信息,執(zhí)行相應(yīng)的處理操作,并在處理完畢后從所述共享存儲(chǔ)中刪除所述異步請(qǐng)求信息。
[0099]在具體實(shí)施本系統(tǒng)時(shí),也可以采用分布式服務(wù)查詢模式。所述分布式服務(wù)系統(tǒng)中至少一個(gè)服務(wù)單元包括所述監(jiān)控單元,所述重試單元為包括所述監(jiān)控單元的服務(wù)單元,也就是說由服務(wù)單元承擔(dān)監(jiān)控任務(wù)和重試任務(wù)。在本實(shí)施方式下,所述服務(wù)單元記錄的異步請(qǐng)求的相關(guān)信息還包括:負(fù)責(zé)處理所述異步請(qǐng)求的服務(wù)單元的IP地址和網(wǎng)絡(luò)端口標(biāo)識(shí)。承擔(dān)監(jiān)控任務(wù)的服務(wù)單元根據(jù)共享存儲(chǔ)中記錄的信息,定期檢查各服務(wù)單元的網(wǎng)絡(luò)端口狀態(tài),從而獲知各服務(wù)單元的工作狀態(tài),并在監(jiān)測(cè)到某服務(wù)單元停止服務(wù)的情況下,直接執(zhí)行重試操作:從共享存儲(chǔ)中獲取停止服務(wù)的服務(wù)單元尚未處理的異步請(qǐng)求信息,執(zhí)行相應(yīng)的處理操作,并在處理完畢后從所述共享存儲(chǔ)中刪除所述異步請(qǐng)求信息。
[0100]上面對(duì)本實(shí)施例提供的分布式服務(wù)系統(tǒng)進(jìn)行了描述,并給出了基于集中監(jiān)控模式和分布式服務(wù)查詢模式的兩種【具體實(shí)施方式】。在其他分布式服務(wù)系統(tǒng)中,其實(shí)施方式可能不同于上述描述,但只要能夠在監(jiān)測(cè)到服務(wù)停止情況時(shí),通過系統(tǒng)內(nèi)部的智能調(diào)度方式由其他服務(wù)單元執(zhí)行重試操作,處理所述停止服務(wù)的服務(wù)單元未處理的異步請(qǐng)求,就不偏離本系統(tǒng)的核心,依然在本系統(tǒng)的保護(hù)范圍之內(nèi)。
[0101]本申請(qǐng)雖然以較佳實(shí)施例公開如上,但其并不是用來限定本申請(qǐng),任何本領(lǐng)域技術(shù)人員在不脫離本申請(qǐng)的精神和范圍內(nèi),都可以做出可能的變動(dòng)和修改,因此本申請(qǐng)的保護(hù)范圍應(yīng)當(dāng)以本申請(qǐng)權(quán)利要求所界定的范圍為準(zhǔn)。
[0102]在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
[0103]內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
[0104]1、計(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ì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
[0105]2、本領(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)品的形式。
【主權(quán)項(xiàng)】
1.一種用于分布式系統(tǒng)的智能調(diào)度方法,其特征在于,包括: 負(fù)責(zé)處理客戶端異步請(qǐng)求的第一服務(wù)端,將接收到的異步請(qǐng)求的相關(guān)信息記錄在共享存儲(chǔ)中; 當(dāng)監(jiān)控服務(wù)端監(jiān)測(cè)到所述第一服務(wù)端停止服務(wù)時(shí),由第二服務(wù)端執(zhí)行下述操作: 從所述共享存儲(chǔ)中獲取所述第一服務(wù)端尚未處理的異步請(qǐng)求信息; 根據(jù)所述異步請(qǐng)求信息,執(zhí)行相應(yīng)的處理操作。2.根據(jù)權(quán)利要求1所述的用于分布式系統(tǒng)的智能調(diào)度方法,其特征在于,所述異步請(qǐng)求的相關(guān)信息包括:從客戶端接收到的異步請(qǐng)求信息、和負(fù)責(zé)處理所述異步請(qǐng)求的第一服務(wù)端標(biāo)識(shí)。3.根據(jù)權(quán)利要求1所述的用于分布式系統(tǒng)的智能調(diào)度方法,其特征在于,所述共享存儲(chǔ)包括:分布式緩存、或者數(shù)據(jù)庫。4.根據(jù)權(quán)利要求2所述的用于分布式系統(tǒng)的智能調(diào)度方法,其特征在于,所述監(jiān)控服務(wù)端為注冊(cè)中心服務(wù)器; 所述注冊(cè)中心服務(wù)器監(jiān)測(cè)到所述第一服務(wù)端停止服務(wù)時(shí),首先執(zhí)行下述操作: 按照預(yù)先設(shè)定的策略選擇所述第二服務(wù)端; 向所述第二服務(wù)端推送執(zhí)行重試操作的通知,所述通知中包含所述第一服務(wù)端標(biāo)識(shí)。5.根據(jù)權(quán)利要求4所述的用于分布式系統(tǒng)的智能調(diào)度方法,其特征在于,所述注冊(cè)中心服務(wù)器采用如下方式監(jiān)測(cè)各服務(wù)端的狀態(tài): 通過監(jiān)測(cè)心跳數(shù)據(jù)包的方式,監(jiān)測(cè)各服務(wù)端的狀態(tài);或者, 通過監(jiān)測(cè)長連接狀態(tài)的方式,監(jiān)測(cè)各服務(wù)端的狀態(tài)。6.根據(jù)權(quán)利要求4所述的用于分布式系統(tǒng)的智能調(diào)度方法,其特征在于,所述注冊(cè)中心服務(wù)器為zookeeper服務(wù)器。7.根據(jù)權(quán)利要求2所述的用于分布式系統(tǒng)的智能調(diào)度方法,其特征在于,所述監(jiān)控服務(wù)端是按照預(yù)先設(shè)定的策略從負(fù)責(zé)處理客戶端異步請(qǐng)求的服務(wù)端中指定的,所述第二服務(wù)端為所述監(jiān)控服務(wù)端。8.根據(jù)權(quán)利要求7所述的用于分布式系統(tǒng)的智能調(diào)度方法,其特征在于,所述異步請(qǐng)求的相關(guān)信息還包括:負(fù)責(zé)處理所述異步請(qǐng)求的第一服務(wù)端的IP地址和網(wǎng)絡(luò)端口標(biāo)識(shí); 所述監(jiān)控服務(wù)端采用如下方式監(jiān)測(cè)各服務(wù)端的狀態(tài): 根據(jù)共享存儲(chǔ)中記錄的信息,定期檢查各服務(wù)端的網(wǎng)絡(luò)端口狀態(tài)。9.根據(jù)權(quán)利要求1-8任一所述的用于分布式系統(tǒng)的智能調(diào)度方法,其特征在于,在執(zhí)行所述根據(jù)所述異步請(qǐng)求信息執(zhí)行相應(yīng)的處理操作的步驟后,執(zhí)行下述操作: 從所述共享存儲(chǔ)中刪除所述異步請(qǐng)求信息。10.一種分布式服務(wù)系統(tǒng),其特征在于,包括: 服務(wù)單元,用于接收客戶端的異步請(qǐng)求,將所述異步請(qǐng)求的相關(guān)信息記錄在共享存儲(chǔ)中,并執(zhí)行相應(yīng)的處理操作; 監(jiān)控單元,用于監(jiān)控各服務(wù)單元的工作狀態(tài); 重試單元,用于在所述監(jiān)控單元監(jiān)測(cè)到本系統(tǒng)中的服務(wù)單元停止服務(wù)時(shí),從所述共享存儲(chǔ)中獲取所述停止服務(wù)的服務(wù)單元尚未處理的異步請(qǐng)求信息,并執(zhí)行相應(yīng)的處理操作。11.根據(jù)權(quán)利要求10所述的分布式服務(wù)系統(tǒng),其特征在于,所述系統(tǒng)中的服務(wù)單元部署于服務(wù)器,每個(gè)服務(wù)器包括至少一個(gè)服務(wù)單元。12.根據(jù)權(quán)利要求11所述的分布式服務(wù)系統(tǒng),其特征在于,所述服務(wù)單元記錄的異步請(qǐng)求的相關(guān)信息包括:從客戶端接收到的異步請(qǐng)求信息、和負(fù)責(zé)處理所述請(qǐng)求的服務(wù)單元標(biāo)識(shí)O13.根據(jù)權(quán)利要求11所述的分布式服務(wù)系統(tǒng),其特征在于,所述共享存儲(chǔ)包括:分布式緩存、或者數(shù)據(jù)庫。14.根據(jù)權(quán)利要求12所述的分布式服務(wù)系統(tǒng),其特征在于,所述監(jiān)控單元部署在注冊(cè)中心服務(wù)器; 所述監(jiān)控單元還用于在監(jiān)測(cè)到本系統(tǒng)中的服務(wù)單元停止服務(wù)時(shí),按照預(yù)先設(shè)定的策略從本系統(tǒng)中選擇一個(gè)服務(wù)單元作為重試單元,并向所選重試單元推送執(zhí)行重試操作的通知,所述通知中包含所述停止服務(wù)的服務(wù)單元標(biāo)識(shí)。15.根據(jù)權(quán)利要求14所述的分布式服務(wù)系統(tǒng),其特征在于,所述監(jiān)控單元具體用于,通過監(jiān)測(cè)心跳數(shù)據(jù)包或者監(jiān)測(cè)長連接狀態(tài)的方式,監(jiān)測(cè)各服務(wù)單元的狀態(tài)。16.根據(jù)權(quán)利要求14所述的分布式服務(wù)系統(tǒng),其特征在于,所述注冊(cè)中心服務(wù)器為zookeeper 服務(wù)器。17.根據(jù)權(quán)利要求12所述的分布式服務(wù)系統(tǒng),其特征在于,所述分布式服務(wù)系統(tǒng)中至少一個(gè)服務(wù)單元包括所述監(jiān)控單元;所述重試單元為包括所述監(jiān)控單元的服務(wù)單元。18.根據(jù)權(quán)利要求17所述的分布式服務(wù)系統(tǒng),其特征在于,所述服務(wù)單元記錄的異步請(qǐng)求的相關(guān)信息還包括:負(fù)責(zé)處理所述異步請(qǐng)求的服務(wù)單元的IP地址和網(wǎng)絡(luò)端口標(biāo)識(shí); 所述監(jiān)控單元具體用于根據(jù)共享存儲(chǔ)中記錄的信息,定期檢查各服務(wù)單元的網(wǎng)絡(luò)端口狀態(tài),從而獲知各服務(wù)單元的工作狀態(tài)。19.根據(jù)權(quán)利要求10-18任一所述的分布式服務(wù)系統(tǒng),其特征在于,所述重試單元還用于,在執(zhí)行相應(yīng)的處理操作后,從所述共享存儲(chǔ)中刪除所述異步請(qǐng)求信息。
【文檔編號(hào)】H04L29/08GK106034137SQ201510102274
【公開日】2016年10月19日
【申請(qǐng)日】2015年3月9日
【發(fā)明人】禹航
【申請(qǐng)人】阿里巴巴集團(tuán)控股有限公司