本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別地涉及一種應(yīng)用集群之間遷移數(shù)據(jù)的方法和裝置。
背景技術(shù):
隨著信息技術(shù)(it)的發(fā)展,it服務(wù)越來(lái)越快速地滲透到社會(huì)生活的方方面面,在為提高社會(huì)生產(chǎn)效率和改善生活環(huán)境做出巨大貢獻(xiàn)的同時(shí),it系統(tǒng)的復(fù)雜度和處理能力也在飛速發(fā)展,同時(shí),應(yīng)用集群的規(guī)模和數(shù)量的增長(zhǎng)也非常迅猛。應(yīng)用集群是指由一組應(yīng)用和數(shù)據(jù)庫(kù)服務(wù)器組成的、服務(wù)于特定應(yīng)用場(chǎng)景的、物理上隔離的分布式系統(tǒng)。例如:銀行業(yè)務(wù)系統(tǒng)。
隨著應(yīng)用集群的規(guī)模和數(shù)量的快速增長(zhǎng),集群擴(kuò)容、容災(zāi)、分裂、遷移等的需求也越來(lái)越頻繁。但由于集群本身構(gòu)造和功能的復(fù)雜性,在每次進(jìn)行集群遷移時(shí),運(yùn)維需要實(shí)施的工作量都非常大。如何簡(jiǎn)化集群遷移的過(guò)程,降低集群遷移的成本,是目前大中型it企業(yè)面臨的重大課題。
目前常用的集群遷移方法主要有兩種:共享數(shù)據(jù)型遷移和人工遷移。
共享數(shù)據(jù)型遷移方法的特點(diǎn)是只遷移應(yīng)用,數(shù)據(jù)庫(kù)保持不變。如圖1所示,為共享數(shù)據(jù)型集群的遷移過(guò)程示意圖。該集群遷移方法實(shí)施的前提條件是應(yīng)用系統(tǒng)是無(wú)狀態(tài)或者應(yīng)用系統(tǒng)的狀態(tài)可丟棄(比如緩存)。
該方法的優(yōu)點(diǎn)是,較之?dāng)?shù)據(jù)庫(kù)遷移,應(yīng)用系統(tǒng)遷移比較容易,只需要在目標(biāo)應(yīng)用系統(tǒng)中復(fù)制源應(yīng)用系統(tǒng)的配置(包括網(wǎng)絡(luò)以及數(shù)據(jù)庫(kù)等的訪(fǎng)問(wèn)地址等)即可平滑過(guò)去到目標(biāo)集群,而且支持不間斷服務(wù)。
相應(yīng)地,該方法也具有一些缺點(diǎn),主要表現(xiàn)在:適用面比較窄,僅適用于計(jì)算密集型應(yīng)用,比如科學(xué)計(jì)算;對(duì)于輸入輸出(i/o)密集型應(yīng)用等需要頻繁訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的應(yīng)用不太適合。而且由于目前應(yīng)用設(shè)計(jì)的方法多采用模型驅(qū)動(dòng),故數(shù)據(jù)庫(kù)在應(yīng)用集群中作用非常大,僅僅遷移應(yīng)用系統(tǒng)難以達(dá)到可擴(kuò)展的要求。
人工遷移的方法是在共享數(shù)據(jù)型遷移方法的基礎(chǔ)之上,增加了人工遷移數(shù)據(jù)庫(kù)的環(huán)節(jié)。數(shù)據(jù)庫(kù)管理員dba(databaseadministrator)或數(shù)據(jù)庫(kù)運(yùn)維人員按照遷移要求,首先把數(shù)據(jù)庫(kù)復(fù)制到目標(biāo)集群,然后清理源集群的數(shù)據(jù),重新調(diào)整目標(biāo)應(yīng)用系統(tǒng)的配置(比如:網(wǎng)絡(luò)或者數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)地址等)。
人工遷移方法的優(yōu)點(diǎn)是遷移比較徹底,能夠滿(mǎn)足可擴(kuò)展性的要求。相應(yīng)地,該方法的缺點(diǎn)是操作復(fù)雜,工程量比較大,而且切換過(guò)程中在進(jìn)行數(shù)據(jù)庫(kù)遷移時(shí)需要終止服務(wù),無(wú)法提供連續(xù)服務(wù),故會(huì)導(dǎo)致丟失部分?jǐn)?shù)據(jù)。
綜上,目前常用的兩種集群遷移方法都具有一定的局限性,主要表現(xiàn)在:
1、共享數(shù)據(jù)型遷移:遷移不徹底,適用范圍窄;
2、人工遷移:遷移過(guò)程復(fù)雜,工程量大,成本高,需中斷服務(wù)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種應(yīng)用集群之間遷移數(shù)據(jù)的方法和裝置,通過(guò)引入一組集群遷移工具來(lái)進(jìn)行數(shù)據(jù)流和狀態(tài)數(shù)據(jù)的配合遷移,能夠?qū)崿F(xiàn)半自動(dòng)化集群遷移,從而實(shí)現(xiàn)平滑,簡(jiǎn)單,高效的應(yīng)用集群之 間數(shù)據(jù)的遷移。
為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種應(yīng)用集群之間遷移數(shù)據(jù)的方法。
一種應(yīng)用集群之間遷移數(shù)據(jù)的方法,所述應(yīng)用集群具有數(shù)據(jù)輸入流,所述方法包括:斷開(kāi)源應(yīng)用集群的輸入流并緩存所述輸入流;提取所述源應(yīng)用集群的狀態(tài)數(shù)據(jù);加載所提取的狀態(tài)數(shù)據(jù)到目標(biāo)應(yīng)用集群;把緩存的輸入流發(fā)送到所述目標(biāo)應(yīng)用集群,之后把當(dāng)前的輸入流發(fā)送給所述目標(biāo)應(yīng)用集群。
可選地,斷開(kāi)源應(yīng)用集群的輸入流的步驟之前,還包括:初始化所述目標(biāo)應(yīng)用集群。
可選地,所述提取所述源應(yīng)用集群的狀態(tài)數(shù)據(jù)的步驟包括:根據(jù)所述狀態(tài)數(shù)據(jù)產(chǎn)生數(shù)據(jù)快照,并且所述加載所提取的狀態(tài)數(shù)據(jù)到目標(biāo)應(yīng)用集群的步驟包括把數(shù)據(jù)快照恢復(fù)成狀態(tài)數(shù)據(jù),然后把所述狀態(tài)數(shù)據(jù)加載到所述目標(biāo)應(yīng)用集群。
可選地,把當(dāng)前的輸入流發(fā)送給所述目標(biāo)應(yīng)用集群的步驟之后,還包括:從所述源應(yīng)用集群中刪除被提取的狀態(tài)數(shù)據(jù)。
可選地,所述集群遷移包括完整遷移和部分遷移。
根據(jù)本發(fā)明的另一方面,提供了一種應(yīng)用集群之間遷移數(shù)據(jù)的裝置。
一種應(yīng)用集群之間遷移數(shù)據(jù)的裝置,所述應(yīng)用集群具有數(shù)據(jù)輸入流,所述裝置包括:輸入流截取模塊,用于斷開(kāi)源應(yīng)用集群的輸入流并緩存所述輸入流;狀態(tài)數(shù)據(jù)提取模塊,用于提取所述源應(yīng)用集群的 狀態(tài)數(shù)據(jù);狀態(tài)數(shù)據(jù)加載模塊,用于加載所提取的狀態(tài)數(shù)據(jù)到目標(biāo)應(yīng)用集群;輸入流轉(zhuǎn)發(fā)模塊,用于把緩存的輸入流發(fā)送到所述目標(biāo)應(yīng)用集群,之后把當(dāng)前的輸入流發(fā)送給所述目標(biāo)應(yīng)用集群。
可選地,還包括:集群初始化模塊,用于在斷開(kāi)源應(yīng)用集群的輸入流之前,初始化所述目標(biāo)應(yīng)用集群。
可選地,所述狀態(tài)數(shù)據(jù)提取模塊還用于根據(jù)所述狀態(tài)數(shù)據(jù)產(chǎn)生數(shù)據(jù)快照,并且所述狀態(tài)數(shù)據(jù)加載模塊還用于把數(shù)據(jù)快照恢復(fù)成狀態(tài)數(shù)據(jù),然后把所述狀態(tài)數(shù)據(jù)加載到所述目標(biāo)應(yīng)用集群。
可選地,還包括:集群清理模塊,用于在把當(dāng)前的輸入流發(fā)送給所述目標(biāo)應(yīng)用集群之后,從所述源應(yīng)用集群中刪除被提取的狀態(tài)數(shù)據(jù)。
可選地,所述集群遷移包括完整遷移和部分遷移。
根據(jù)本發(fā)明的技術(shù)方案,提出了一種應(yīng)用集群的規(guī)范模型,以及對(duì)滿(mǎn)足該規(guī)范模型的應(yīng)用集群進(jìn)行遷移的方法。通過(guò)對(duì)源應(yīng)用集群的斷開(kāi)的輸入流進(jìn)行緩存,待數(shù)據(jù)遷移完成后再將輸入流進(jìn)行轉(zhuǎn)發(fā),可以保證輸入數(shù)據(jù)的完整性和先后順序;通過(guò)以數(shù)據(jù)快照的形式將源應(yīng)用集群的狀態(tài)數(shù)據(jù)轉(zhuǎn)移到目標(biāo)應(yīng)用集群,可以既安全又高效地進(jìn)行狀態(tài)數(shù)據(jù)的遷移,遷移徹底。使用本發(fā)明的技術(shù)方案進(jìn)行集群遷移可以簡(jiǎn)化集群之間數(shù)據(jù)遷移的步驟,降低集群遷移的工作量,從而提高集群遷移的效率;通過(guò)規(guī)范應(yīng)用集群的結(jié)構(gòu),可以降低集群對(duì)數(shù)據(jù)庫(kù)的高度依賴(lài),從而引導(dǎo)應(yīng)用集群向輕量化、模塊化演進(jìn),進(jìn)而實(shí)現(xiàn)了平滑、簡(jiǎn)單、高效的應(yīng)用集群遷移。
附圖說(shuō)明
附圖用于更好地理解本發(fā)明,不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。其中:
圖1是現(xiàn)有技術(shù)中共享數(shù)據(jù)型集群的遷移過(guò)程示意圖;
圖2是根據(jù)本發(fā)明實(shí)施例的應(yīng)用集群之間遷移數(shù)據(jù)的方法的主要步驟示意圖;
圖3是根據(jù)本發(fā)明實(shí)施例的應(yīng)用集群之間遷移數(shù)據(jù)的裝置的主要模塊示意圖;
圖4是根據(jù)本發(fā)明實(shí)施例的應(yīng)用集群之間遷移數(shù)據(jù)的系統(tǒng)的框架圖;
圖5是根據(jù)本發(fā)明實(shí)施例的應(yīng)用集群之間遷移數(shù)據(jù)的流程示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施例做出說(shuō)明,其中包括本發(fā)明實(shí)施例的各種細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,可以對(duì)這里描述的實(shí)施例做出各種改變和修改,而不會(huì)背離本發(fā)明的范圍和精神。同樣,為了清楚和簡(jiǎn)明,以下的描述中省略了對(duì)公知功能和結(jié)構(gòu)的描述。
圖2是根據(jù)本發(fā)明實(shí)施例的應(yīng)用集群之間遷移數(shù)據(jù)的方法的主要步驟示意圖。其中,源應(yīng)用集群是需要遷出數(shù)據(jù)的集群,目標(biāo)應(yīng)用集群是要遷入數(shù)據(jù)的集群,源應(yīng)用集群所承載的部分或全部負(fù)荷在遷移完成以后由目標(biāo)應(yīng)用集群承擔(dān)。另外,本發(fā)明的應(yīng)用集群具有數(shù)據(jù)輸入流。如圖2所示,本發(fā)明的應(yīng)用集群之間遷移數(shù)據(jù)的方法主要包括如下的步驟s21至步驟s24:
步驟s21:斷開(kāi)源應(yīng)用集群的輸入流并緩存所述輸入流;
步驟s22:提取源應(yīng)用集群的狀態(tài)數(shù)據(jù);
步驟s23:加載所提取的狀態(tài)數(shù)據(jù)到目標(biāo)應(yīng)用集群;
步驟s24:把緩存的輸入流發(fā)送到所述目標(biāo)應(yīng)用集群,之后把當(dāng)前的輸入流發(fā)送給所述目標(biāo)應(yīng)用集群。
在執(zhí)行步驟s21斷開(kāi)源應(yīng)用集群的輸入流之前,還可以預(yù)先初始化目標(biāo)應(yīng)用集群。
其中,步驟s22中提取源應(yīng)用集群的狀態(tài)數(shù)據(jù)包括:根據(jù)狀態(tài)數(shù)據(jù)產(chǎn)生數(shù)據(jù)快照,并且步驟s23加載所提取的狀態(tài)數(shù)據(jù)到目標(biāo)應(yīng)用集群包括把數(shù)據(jù)快照恢復(fù)成狀態(tài)數(shù)據(jù),然后把該狀態(tài)數(shù)據(jù)加載到目標(biāo)應(yīng)用集群。
另外,在步驟s24把當(dāng)前的輸入流發(fā)送給所述目標(biāo)應(yīng)用集群之后,還可以從源應(yīng)用集群中刪除被提取的狀態(tài)數(shù)據(jù)。
本發(fā)明中的集群遷移包括完整遷移和部分遷移。其中完整遷移是指將源應(yīng)用集群的負(fù)荷全部轉(zhuǎn)移到目標(biāo)集群,部分遷移是指將源應(yīng)用集群中的部分負(fù)荷轉(zhuǎn)移到目標(biāo)集群。例如:某網(wǎng)站的集群資源從北京機(jī)房轉(zhuǎn)移到上海機(jī)房是完整遷移;該網(wǎng)站新設(shè)上海機(jī)房負(fù)責(zé)處理華東區(qū)的業(yè)務(wù)即屬于部分遷移。
圖3是根據(jù)本發(fā)明實(shí)施例的應(yīng)用集群之間遷移數(shù)據(jù)的裝置的主要模塊示意圖。其中,源應(yīng)用集群是需要遷出數(shù)據(jù)的集群,目標(biāo)應(yīng)用集群是要遷入數(shù)據(jù)的集群,源應(yīng)用集群所承載的部分或全部負(fù)荷在遷移完成以后由目標(biāo)應(yīng)用集群承擔(dān)。另外,本發(fā)明的應(yīng)用集群具有數(shù)據(jù)輸入流。如圖3所示,本發(fā)明的應(yīng)用集群之間遷移數(shù)據(jù)的裝置30主要包括輸入流截取模塊31、狀態(tài)數(shù)據(jù)提取模塊32、狀態(tài)數(shù)據(jù)加載模塊33和輸入流轉(zhuǎn)發(fā)模塊34。
輸入流截取模塊31用于斷開(kāi)源應(yīng)用集群的輸入流并緩存所述輸入流;狀態(tài)數(shù)據(jù)提取模塊32用于提取源應(yīng)用集群的狀態(tài)數(shù)據(jù);狀態(tài)數(shù)據(jù)加載模塊33用于加載所提取的狀態(tài)數(shù)據(jù)到目標(biāo)應(yīng)用集群;輸入流轉(zhuǎn)發(fā)模塊34用于把緩存的輸入流發(fā)送到所述目標(biāo)應(yīng)用集群,之后把當(dāng)前的輸入流發(fā)送給所述目標(biāo)應(yīng)用集群。
另外,本發(fā)明的應(yīng)用集群之間遷移數(shù)據(jù)的裝置30還可以包括集群初始化模塊,用于在斷開(kāi)源應(yīng)用集群的輸入流之前,初始化目標(biāo)應(yīng)用 集群。
其中,狀態(tài)數(shù)據(jù)提取模塊32還可以用于根據(jù)所述狀態(tài)數(shù)據(jù)產(chǎn)生數(shù)據(jù)快照,并且狀態(tài)數(shù)據(jù)加載模塊33還可以用于把數(shù)據(jù)快照恢復(fù)成狀態(tài)數(shù)據(jù),然后把狀態(tài)數(shù)據(jù)加載到目標(biāo)應(yīng)用集群。
本發(fā)明的應(yīng)用集群之間遷移數(shù)據(jù)的裝置30還可以包括集群清理模塊,用于在把當(dāng)前的輸入流發(fā)送給所述目標(biāo)應(yīng)用集群之后,從源應(yīng)用集群中刪除被提取的狀態(tài)數(shù)據(jù)。
本發(fā)明中的集群遷移包括完整遷移和部分遷移。
圖4是根據(jù)本發(fā)明實(shí)施例的應(yīng)用集群之間遷移數(shù)據(jù)的系統(tǒng)的框架圖。如圖4所示,本發(fā)明包含一個(gè)應(yīng)用集群的規(guī)范模型和一組遷移工具。其中,該遷移工具包括流路由單元和狀態(tài)數(shù)據(jù)遷移單元。
源應(yīng)用集群是需要遷出數(shù)據(jù)的集群,目標(biāo)應(yīng)用集群是要遷入數(shù)據(jù)的集群,源應(yīng)用集群所承載的部分或全部負(fù)荷在遷移完成以后由目標(biāo)應(yīng)用集群承擔(dān)。為了滿(mǎn)足應(yīng)用集群的可遷移性,本發(fā)明的源應(yīng)用集群和目標(biāo)應(yīng)用集群需要滿(mǎn)足如表1所示的規(guī)范模型。
表1應(yīng)用集群規(guī)范模型
在本發(fā)明中,狀態(tài)數(shù)據(jù)指的是會(huì)隨輸入流而發(fā)生變化的數(shù)據(jù),也就是在應(yīng)用系統(tǒng)運(yùn)行過(guò)程中生成以及保存的數(shù)據(jù)。由于一個(gè)應(yīng)用集群的狀態(tài)數(shù)據(jù)的保存以數(shù)據(jù)庫(kù)為主,同時(shí)還可以包括在本地持久化保存的文件和緩存的數(shù)據(jù)(例如:保存在集群服務(wù)器的磁盤(pán)上等的數(shù)據(jù))。因此,為了保證狀態(tài)數(shù)據(jù)遷移的完整性,需要應(yīng)用集群具有數(shù)據(jù)提取extract和數(shù)據(jù)加載load的功能,可以將集群中所有的狀態(tài)數(shù)據(jù)提取并保存為快照,同時(shí)還可以加載到新的集群中。
其中,表1中的數(shù)據(jù)加載load服務(wù),通過(guò)將狀態(tài)遷移組件中暫存的數(shù)據(jù)快照加載到當(dāng)前集群中,并把數(shù)據(jù)快照恢復(fù)成狀態(tài)數(shù)據(jù),即可實(shí)現(xiàn)將源應(yīng)用集群中的狀態(tài)數(shù)據(jù)加載到目標(biāo)應(yīng)用集群中。例如:假設(shè)集群a把某一時(shí)刻數(shù)據(jù)的狀態(tài)s保存到快照中,集群b加載該快照完成后,集群b的數(shù)據(jù)的狀態(tài)應(yīng)該是s。
流路由單元可以用于在進(jìn)行應(yīng)用集群遷移時(shí),斷開(kāi)源應(yīng)用集群的輸入流并進(jìn)行緩存,以保證輸入流不丟失;同時(shí)還可以用于按照設(shè)定的規(guī)則把輸入流切換到不同的集群中。設(shè)定的規(guī)則例如:“把奇數(shù)的 電子單據(jù)發(fā)給a集群,把偶數(shù)的單據(jù)發(fā)給b集群”,或者“把所有單據(jù)全量轉(zhuǎn)發(fā)給a集群,把未完結(jié)的單據(jù)轉(zhuǎn)發(fā)給b集群”,等等。
如果該集群遷移是完整遷移,即源應(yīng)用集群的負(fù)荷全部遷移到目標(biāo)應(yīng)用集群,則流路由單元負(fù)責(zé)把全部的輸入流切換到目標(biāo)集群;如果該集群遷移是部分遷移,則流路由組件負(fù)責(zé)按照分流規(guī)則,把符合規(guī)則的數(shù)據(jù)輸入流切換到目標(biāo)集群。
狀態(tài)數(shù)據(jù)遷移單元主要用于通過(guò)調(diào)用源應(yīng)用集群的數(shù)據(jù)提取extract服務(wù),把源應(yīng)用集群的當(dāng)前數(shù)據(jù)狀態(tài)保存為快照,然后再調(diào)用目標(biāo)集群的數(shù)據(jù)加載load服務(wù),把狀態(tài)數(shù)據(jù)遷移單元中暫存的快照加載到目標(biāo)集群中并恢復(fù)成狀態(tài)數(shù)據(jù)。
圖5是根據(jù)本發(fā)明實(shí)施例的應(yīng)用集群之間遷移數(shù)據(jù)的流程示意圖。圖中標(biāo)示了本發(fā)明應(yīng)用集群之間遷移數(shù)據(jù)的主要步驟和先后順序。
另外,在應(yīng)用集群遷移之前需要先初始化目標(biāo)集群。初始化目標(biāo)集群主要有3個(gè)關(guān)鍵環(huán)節(jié)。首先是保證集群的物理資源全部到位,包括基礎(chǔ)網(wǎng)絡(luò),應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器等;其次是初始化應(yīng)用服務(wù)器中的應(yīng)用系統(tǒng),主要包括應(yīng)用系統(tǒng)的部署和運(yùn)行環(huán)境的配置,例如:網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)地址配置等;最后是初始化數(shù)據(jù)庫(kù)配置,主要包括數(shù)據(jù)庫(kù)程序安裝、庫(kù)表初始化,以及基礎(chǔ)數(shù)據(jù)的初始化等,其中基礎(chǔ)數(shù)據(jù)和狀態(tài)數(shù)據(jù)的區(qū)別在于基礎(chǔ)數(shù)據(jù)和輸入流無(wú)關(guān),即基礎(chǔ)數(shù)據(jù)不會(huì)隨著輸入流而改變。
目標(biāo)集群初始化完成后,即可實(shí)施應(yīng)用集群的數(shù)據(jù)遷移。如圖5所示,應(yīng)用集群的數(shù)據(jù)遷移主要包括如下的步驟:
步驟s51:斷開(kāi)源應(yīng)用集群的輸入流。通過(guò)流路由單元斷開(kāi)或截流對(duì)源應(yīng)用集群的輸入流(如果是完整遷移則斷開(kāi)所有輸入流,如果是部分遷移則斷開(kāi)要遷移到目標(biāo)應(yīng)用集群的輸入流),此后源應(yīng)用集群 將不再接收即將遷入目標(biāo)應(yīng)用集群的輸入流;
步驟s52:緩存斷開(kāi)的輸入流。為了保證輸入流不丟失,需要在流路由單元中緩存輸入流中的信息,在進(jìn)行輸入流緩存時(shí),可以消息隊(duì)列的形式將輸入流保存在緩存中,也可以其他形式進(jìn)行逐條記錄保存;
步驟s53:提取源應(yīng)用集群的狀態(tài)數(shù)據(jù),并保存為數(shù)據(jù)快照。狀態(tài)數(shù)據(jù)遷移單元通過(guò)調(diào)用源應(yīng)用集群的數(shù)據(jù)提取extract服務(wù),把源應(yīng)用集群數(shù)據(jù)庫(kù)、磁盤(pán)文件及緩存中保存的狀態(tài)數(shù)據(jù)導(dǎo)出為數(shù)據(jù)快照,并暫存到狀態(tài)數(shù)據(jù)遷移單元中;
步驟s54:加載數(shù)據(jù)快照,并把數(shù)據(jù)快照恢復(fù)成狀態(tài)數(shù)據(jù)后保存到目標(biāo)集群中。狀態(tài)數(shù)據(jù)遷移單元通過(guò)調(diào)用目標(biāo)應(yīng)用集群的數(shù)據(jù)加載load服務(wù),把狀態(tài)數(shù)據(jù)遷移單元中暫存的數(shù)據(jù)快照加載并恢復(fù)成狀態(tài)數(shù)據(jù)后,保存到目標(biāo)應(yīng)用集群中;
步驟s55:將緩存的輸入流恢復(fù)到目標(biāo)應(yīng)用集群。在開(kāi)放輸入流之前需要保證輸入數(shù)據(jù)的先后順序,故需要首先把緩存中的輸入流恢復(fù)到目標(biāo)應(yīng)用集群中,再把當(dāng)前的輸入流轉(zhuǎn)發(fā)給目標(biāo)應(yīng)用集群;
步驟s56:待緩存的輸入流恢復(fù)完成后,把當(dāng)前的輸入流轉(zhuǎn)發(fā)給目標(biāo)應(yīng)用集群。
根據(jù)如上述的步驟s51至步驟s56,即可實(shí)現(xiàn)在不丟失輸入數(shù)據(jù)的前提下執(zhí)行狀態(tài)數(shù)據(jù)的遷移,從而實(shí)現(xiàn)應(yīng)用集群之間的數(shù)據(jù)遷移。
集群遷移完成后,目標(biāo)應(yīng)用集群即可開(kāi)始正常工作。另外,還可以對(duì)源應(yīng)用集群進(jìn)行收尾處理。對(duì)源應(yīng)用集群的收尾處理要根據(jù)不同場(chǎng)景區(qū)別對(duì)待。如果此次集群遷移是完整遷移,即所有負(fù)荷已經(jīng)全部遷移到目標(biāo)應(yīng)用集群,那么,此時(shí)源應(yīng)用集群需要關(guān)閉集群運(yùn)行并回收資源;如果此次集群遷移是部分遷移,則需要對(duì)源應(yīng)用集群的數(shù)據(jù)庫(kù)做精簡(jiǎn)操作,刪除不需要繼續(xù)維護(hù)的相關(guān)狀態(tài)數(shù)據(jù),即:刪除已被提取的狀態(tài)數(shù)據(jù)。
以上所述為本發(fā)明實(shí)施例的實(shí)施過(guò)程。
根據(jù)本發(fā)明實(shí)施例的技術(shù)方案,提出了一種應(yīng)用集群的規(guī)范模型,以及對(duì)滿(mǎn)足該規(guī)范模型的應(yīng)用集群進(jìn)行遷移的方法。通過(guò)對(duì)源應(yīng)用集群的斷開(kāi)的輸入流進(jìn)行緩存,待數(shù)據(jù)遷移完成后再將輸入流進(jìn)行轉(zhuǎn)發(fā),可以保證輸入數(shù)據(jù)的完整性和先后順序;通過(guò)以數(shù)據(jù)快照的形式將源應(yīng)用集群的狀態(tài)數(shù)據(jù)轉(zhuǎn)移到目標(biāo)應(yīng)用集群,可以既安全又高效地進(jìn)行狀態(tài)數(shù)據(jù)的遷移,遷移徹底。使用本發(fā)明的技術(shù)方案進(jìn)行集群遷移可以簡(jiǎn)化集群之間數(shù)據(jù)遷移的步驟,降低集群遷移的工作量,從而提高集群遷移的效率;通過(guò)規(guī)范應(yīng)用集群的結(jié)構(gòu),可以降低集群對(duì)數(shù)據(jù)庫(kù)的高度依賴(lài),從而引導(dǎo)應(yīng)用集群向輕量化、模塊化演進(jìn),進(jìn)而實(shí)現(xiàn)了平滑、簡(jiǎn)單、高效的應(yīng)用集群遷移。
另外,本發(fā)明的應(yīng)用集群之間不存在強(qiáng)依賴(lài),且如果應(yīng)用集群有輸出,則其輸出不依賴(lài)于下游集群的物理模型。當(dāng)下游集群的物理模型發(fā)生變化時(shí),本發(fā)明的應(yīng)用集群的輸出流不受影響。
上述具體實(shí)施方式,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限制。本領(lǐng)域技術(shù)人員應(yīng)該明白的是,取決于設(shè)計(jì)要求和其他因素,可以發(fā)生各種各樣的修改、組合、子組合和替代。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)范圍之內(nèi)。