欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)遷移方法和裝置與流程

文檔序號(hào):11436994閱讀:304來源:國(guó)知局
數(shù)據(jù)遷移方法和裝置與流程

本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種數(shù)據(jù)遷移方法和裝置。



背景技術(shù):

一般分布式集群采用的服務(wù)發(fā)現(xiàn)組件是目錄服務(wù)器,該服務(wù)器和分布式集群中的所有節(jié)點(diǎn)相連,通過心跳包的方式來獲得節(jié)點(diǎn)的狀態(tài)信息,當(dāng)節(jié)點(diǎn)增加,減少或者出現(xiàn)故障的時(shí)候,則更新目錄服務(wù)器中當(dāng)前集群的狀態(tài)信息,并同步給服務(wù)消費(fèi)者,以便于服務(wù)消費(fèi)者選擇合適的服務(wù)節(jié)點(diǎn)進(jìn)行接入。

但是,現(xiàn)有的服務(wù)發(fā)現(xiàn)服務(wù)一般針對(duì)于無狀態(tài)的服務(wù)提供者集群,加減節(jié)點(diǎn)并沒有考慮節(jié)點(diǎn)的狀態(tài)信息的變更,不能很好地支持有狀態(tài)的服務(wù)器。而采用比較完善的分布式組件zookeeper又會(huì)使得整個(gè)架構(gòu)顯得比較臃腫,不利于后期的維護(hù)。

針對(duì)上述的問題,目前尚未提出有效的解決方案。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供了一種數(shù)據(jù)遷移方法和裝置,以至少解決由于現(xiàn)有技術(shù)的分布式集群服務(wù)發(fā)現(xiàn)組件功能單一導(dǎo)致的不利于數(shù)據(jù)遷移的技術(shù)問題。

根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種數(shù)據(jù)遷移方法,包括:第一服務(wù)器接收控制設(shè)備發(fā)送的狀態(tài)變更信息,其中,所述狀態(tài)變更信息用于表示服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,所述服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群,所述服務(wù)器集群包括所述第一服務(wù)器;所述第一服務(wù)器判斷所述第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中是否存在目標(biāo)帳號(hào),其中,所述目標(biāo)帳號(hào)被配置為由所述服務(wù)器集群中的第二服務(wù)器提供服務(wù);在判斷出所述第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中存在所述目標(biāo)帳號(hào)的情況下,所述第一服務(wù)器將所述第一服務(wù)器上所述目標(biāo)帳號(hào)的數(shù)據(jù)遷移到所述第二服務(wù)器;在完成將所述目標(biāo)帳號(hào)的數(shù)據(jù)遷移到所述第二服務(wù)器之后,所述第一服務(wù)器向所述控制設(shè)備發(fā)送遷移完成信息,其中,所述遷移完成信息用于表示所述第一服務(wù)器完成對(duì)所述目標(biāo)帳號(hào)的數(shù)據(jù)的遷移。

根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種數(shù)據(jù)遷移裝置,包括:控制設(shè)備檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,所述服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群;所述控制設(shè)備向所述服務(wù)器集群中的所有服務(wù)器發(fā)送狀態(tài)變更信息,其中,所述狀態(tài)變更信息用于表示所述服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更;在所述控制設(shè)備接收到所述所有服務(wù)器中的目標(biāo)服務(wù)器發(fā)送的遷移完成信息之后,所述控制設(shè)備更新所述服務(wù)器集群的集群狀態(tài)信息,其中,所述遷移完成信息用于表示所述目標(biāo)服務(wù)器完成對(duì)數(shù)據(jù)的遷移,所述目標(biāo)服務(wù)器中為所述所有服務(wù)器中需要進(jìn)行數(shù)據(jù)遷移的服務(wù)器。

根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種數(shù)據(jù)遷移方法,包括:第一接收單元,用于通過第一服務(wù)器接收控制設(shè)備發(fā)送的狀態(tài)變更信息,其中,所述狀態(tài)變更信息用于表示服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,所述服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群,所述服務(wù)器集群包括所述第一服務(wù)器;判斷單元,用于通過所述第一服務(wù)器判斷所述第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中是否存在目標(biāo)帳號(hào),其中,所述目標(biāo)帳號(hào)被配置為由所述服務(wù)器集群中的第二服務(wù)器提供服務(wù);遷移單元,用于在判斷出所述第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中存在所述目標(biāo)帳號(hào)的情況下,通過所述第一服務(wù)器將所述第一服務(wù)器上所述目標(biāo)帳號(hào)的數(shù)據(jù)遷移到所述第二服務(wù)器;發(fā)送單元,用于在完成將所述目標(biāo)帳號(hào)的數(shù)據(jù)遷移到所述第二服務(wù)器之后,通過所述第一服務(wù)器向所述控制設(shè)備發(fā)送遷移完成信息,其中,所述遷移完成信息用于表示所述第一服務(wù)器完成對(duì)所述目標(biāo)帳號(hào)的數(shù)據(jù)的遷移。

根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種數(shù)據(jù)遷移裝置,包括:檢測(cè)單元,用于通過控制設(shè)備檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,所述服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群;發(fā)送單元,用于通過所述控制設(shè)備向所述服務(wù)器集群中的所有服務(wù)器發(fā)送狀態(tài)變更信息,其中,所述狀態(tài)變更信息用于表示所述服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更;更新單元,用于在所述控制設(shè)備接收到所述所有服務(wù)器中的目標(biāo)服務(wù)器發(fā)送的遷移完成信息之后,通過所述控制設(shè)備更新所述服務(wù)器集群的集群狀態(tài)信息,其中,所述遷移完成信息用于表示所述目標(biāo)服務(wù)器完成對(duì)數(shù)據(jù)的遷移,所述目標(biāo)服務(wù)器中為所述所有服務(wù)器中需要進(jìn)行數(shù)據(jù)遷移的服務(wù)器。

在本發(fā)明實(shí)施例中,通過第一服務(wù)器接收控制設(shè)備發(fā)送的狀態(tài)變更信息,判斷第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中是否存在目標(biāo)帳號(hào),如果存在,則將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器,并在遷移完成之后向控制設(shè)備發(fā)送遷移完成信息,達(dá)到了服務(wù)器根據(jù)控制設(shè)備的狀態(tài)變更信息遷移目標(biāo)帳號(hào)的數(shù)據(jù)的目的,從而實(shí)現(xiàn)了自動(dòng)完成用戶數(shù)據(jù)遷移的技術(shù)效果,進(jìn)而解決了由于現(xiàn)有技術(shù)的分布式集群服務(wù)發(fā)現(xiàn)組件功能單一導(dǎo)致的不利于數(shù)據(jù)遷移的技術(shù)問題。

附圖說明

此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:

圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)遷移方法的硬件環(huán)境的示意圖;

圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的數(shù)據(jù)遷移方法的流程圖;

圖3是根據(jù)本發(fā)明實(shí)施例的一種可選的數(shù)據(jù)遷移方法的流程圖;

圖4是根據(jù)本發(fā)明實(shí)施例的一種有狀態(tài)情況下的分布式服務(wù)集群服務(wù)的示意圖;

圖5是根據(jù)本發(fā)明實(shí)施例的一種節(jié)點(diǎn)變化數(shù)據(jù)遷移方法的流程圖;

圖6是根據(jù)本發(fā)明實(shí)施例的一種節(jié)點(diǎn)故障處理方法的流程圖;

圖7是根據(jù)本發(fā)明實(shí)施例的一種可選的數(shù)據(jù)遷移裝置的示意圖;

圖8是根據(jù)本發(fā)明實(shí)施例的一種可選的數(shù)據(jù)遷移裝置的示意圖;以及

圖9是根據(jù)本發(fā)明實(shí)施例的一種終端的結(jié)構(gòu)框圖。

具體實(shí)施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。

需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。

首先,在對(duì)本發(fā)明實(shí)施例進(jìn)行描述的過程中出現(xiàn)的部分名詞或者術(shù)語適用于如下解釋:

分布式服務(wù)器:所謂分布式資源共享服務(wù)器就是指數(shù)據(jù)和程序可以不位于一個(gè)服務(wù)器上,而是分散到多個(gè)服務(wù)器,以網(wǎng)絡(luò)上分散分布的地理信息數(shù)據(jù)及受其影響的數(shù)據(jù)庫(kù)操作為研究對(duì)象的一種理論計(jì)算模型服務(wù)器形式。

服務(wù)發(fā)現(xiàn):服務(wù)發(fā)現(xiàn)組件記錄了(大規(guī)模)分布式系統(tǒng)中所有服務(wù)的信息,人們或者其它服務(wù)可以據(jù)此找到這些服務(wù)。

集群:英文名稱為cluster,通俗地說,集群是這樣一種技術(shù),它將多個(gè)系統(tǒng)連接到一起,使多臺(tái)服務(wù)器能夠像一臺(tái)機(jī)器那樣工作或者看起來好像一臺(tái)機(jī)器。采用集群系統(tǒng)通常是為了提高系統(tǒng)的穩(wěn)定性和網(wǎng)絡(luò)中心的數(shù)據(jù)處理能力及服務(wù)能力。

實(shí)施例1

根據(jù)本發(fā)明實(shí)施例,提供了一種數(shù)據(jù)遷移的方法實(shí)施例。

可選地,在本實(shí)施例中,上述數(shù)據(jù)遷移方法可以應(yīng)用于如圖1所示的由服務(wù)器102和終端104所構(gòu)成的硬件環(huán)境中。如圖1所示,服務(wù)器102通過網(wǎng)絡(luò)與終端104進(jìn)行連接,上述網(wǎng)絡(luò)包括但不限于:廣域網(wǎng)、城域網(wǎng)或局域網(wǎng),終端104并不限定于pc、手機(jī)、平板電腦等。本發(fā)明實(shí)施例的數(shù)據(jù)遷移方法可以由服務(wù)器102來執(zhí)行,也可以由終端104來執(zhí)行,還可以是由服務(wù)器102和終端104共同執(zhí)行。其中,終端104執(zhí)行本發(fā)明實(shí)施例的數(shù)據(jù)遷移方法也可以是由安裝在其上的客戶端來執(zhí)行。

在一個(gè)可選的應(yīng)用場(chǎng)景中,在有狀態(tài)的分布式服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變化時(shí),控制設(shè)備檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,控制設(shè)備向服務(wù)器集群中的所有服務(wù)器發(fā)送狀態(tài)變更信息,服務(wù)器判斷當(dāng)前服務(wù)的帳號(hào)中是否存在應(yīng)該由別的服務(wù)器提供服務(wù)的帳號(hào),將這些帳號(hào)進(jìn)行數(shù)據(jù)遷移,遷移到對(duì)應(yīng)的提供服務(wù)的服務(wù)器中,服務(wù)器向控制設(shè)備發(fā)送遷移完成信息,在控制設(shè)備接收到所有服務(wù)器中的目標(biāo)服務(wù)器發(fā)送的遷移完成信息之后,控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息,服務(wù)消費(fèi)端進(jìn)行二次選擇集群中的某個(gè)節(jié)點(diǎn)繼續(xù)提供服務(wù)。

圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的數(shù)據(jù)遷移方法的流程圖,如圖2所示,該方法可以包括以下步驟:

步驟s202,第一服務(wù)器接收控制設(shè)備發(fā)送的狀態(tài)變更信息,其中,狀態(tài)變更信息用于表示服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群,服務(wù)器集群包括第一服務(wù)器。

步驟s204,第一服務(wù)器判斷第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中是否存在目標(biāo)帳號(hào),其中,目標(biāo)帳號(hào)被配置為由服務(wù)器集群中的第二服務(wù)器提供服務(wù)。

步驟s206,在判斷出第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中存在目標(biāo)帳號(hào)的情況下,第一服務(wù)器將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器。

步驟s208,在完成將目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器之后,第一服務(wù)器向控制設(shè)備發(fā)送遷移完成信息,其中,遷移完成信息用于表示第一服務(wù)器完成對(duì)目標(biāo)帳號(hào)的數(shù)據(jù)的遷移。

通過上述步驟s202至步驟s208,通過第一服務(wù)器接收控制設(shè)備發(fā)送的狀態(tài)變更信息,判斷第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中是否存在目標(biāo)帳號(hào),如果存在,則將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器,并在遷移完成之后向控制設(shè)備發(fā)送遷移完成信息,可以解決由于現(xiàn)有技術(shù)的分布式集群服務(wù)發(fā)現(xiàn)組件功能單一導(dǎo)致的不利于數(shù)據(jù)遷移的技術(shù)問題,進(jìn)而達(dá)到自動(dòng)完成用戶數(shù)據(jù)遷移的技術(shù)效果。

在步驟s202提供的技術(shù)方案中,服務(wù)器集群是有狀態(tài)的分布式服務(wù)器集群,例如,某個(gè)服務(wù)器中正在為玩家的游戲帳號(hào)提供服務(wù),則這個(gè)服務(wù)器為有狀態(tài)的服務(wù)器,第一服務(wù)器是服務(wù)器集群中的一個(gè)服務(wù)器,在服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更(包括增加和減少)時(shí),控制設(shè)備會(huì)向第一服務(wù)器發(fā)送狀態(tài)變更信息。狀態(tài)變更信息可以是多種類型的信息,例如,可以是數(shù)字化的指令或者一串代碼等。

在步驟s204提供的技術(shù)方案中,第一服務(wù)器接收到控制設(shè)備發(fā)送的狀態(tài)變更信息之后,判斷第一服務(wù)器中當(dāng)前服務(wù)的帳號(hào)中是否有被配置為由別的服務(wù)器提供服務(wù)的帳號(hào),例如,在服務(wù)器數(shù)量發(fā)生變化之后,可能有的帳號(hào)會(huì)被分配遷移到新的服務(wù)器中,所以當(dāng)前的第一服務(wù)器需要進(jìn)行自檢,判斷自身服務(wù)的帳號(hào)中是否有應(yīng)該由當(dāng)前服務(wù)器集群中別的服務(wù)器提供服務(wù)的帳號(hào)。第一服務(wù)器所提供服務(wù)的帳號(hào)是由第一服務(wù)器根據(jù)哈希算法計(jì)算出來的,每個(gè)服務(wù)器中都會(huì)使用同樣的哈希算法計(jì)算得到自身提供服務(wù)的帳號(hào),其中,每個(gè)服務(wù)器自身提供服務(wù)的帳號(hào)不是由控制設(shè)備確定的,而是由每個(gè)服務(wù)器通過計(jì)算得到的。

在步驟s206提供的技術(shù)方案中,如果第一服務(wù)器判斷出自己提供服務(wù)的帳號(hào)中有目標(biāo)帳號(hào),則第一服務(wù)器將目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器中,由對(duì)應(yīng)的第二服務(wù)器來為目標(biāo)帳號(hào)提供服務(wù)。

在第一服務(wù)器中存儲(chǔ)有第一服務(wù)器當(dāng)前提供服務(wù)的所有帳號(hào)的數(shù)據(jù),這些數(shù)據(jù)可以以帳號(hào)為索引存儲(chǔ)在數(shù)據(jù)庫(kù)中,對(duì)于一個(gè)帳號(hào),其數(shù)據(jù)是有限的、確定的,如果第一服務(wù)器判斷出自己提供服務(wù)的帳號(hào)中有需要遷移到別的服務(wù)器上服務(wù)的目標(biāo)帳號(hào),則對(duì)目標(biāo)帳號(hào)的所有數(shù)據(jù)進(jìn)行遷移,第一服務(wù)器將目標(biāo)帳號(hào)的數(shù)據(jù)發(fā)送到第二服務(wù)器中,在發(fā)送時(shí)可以將每個(gè)帳號(hào)的數(shù)據(jù)單獨(dú)作為一個(gè)數(shù)據(jù)塊發(fā)送到第二服務(wù)器中,也可以將所有需要發(fā)送到第二服務(wù)器中的多個(gè)帳號(hào)的數(shù)據(jù)作為一個(gè)數(shù)據(jù)塊發(fā)送到第二服務(wù)器中,在數(shù)據(jù)發(fā)送完成之后可以將第一服務(wù)器中的目標(biāo)帳號(hào)數(shù)據(jù)刪除,不再保存。如果第一服務(wù)器和第二服務(wù)器是通過網(wǎng)絡(luò)連接的,則第一服務(wù)器通過網(wǎng)絡(luò)將目標(biāo)帳號(hào)的數(shù)據(jù)發(fā)送到第二服務(wù)器,在數(shù)據(jù)發(fā)送時(shí)可以通過tcp協(xié)議進(jìn)行數(shù)據(jù)傳輸。

在步驟s208提供的技術(shù)方案中,在將目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器中之后,第一服務(wù)器向控制設(shè)備發(fā)送信息,提示發(fā)送遷移信息完成。

作為一種可選的實(shí)施例,在第一服務(wù)器將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器的過程中,第一服務(wù)器接收到目標(biāo)帳號(hào)的服務(wù)請(qǐng)求;第一服務(wù)器將服務(wù)請(qǐng)求重定向到第二服務(wù)器,其中,第二服務(wù)器用于響應(yīng)服務(wù)請(qǐng)求向目標(biāo)帳號(hào)提供服務(wù)。如果目標(biāo)帳號(hào)在遷移到第二服務(wù)器的過程中繼續(xù)向第一服務(wù)器發(fā)送服務(wù)請(qǐng)求,則第一服務(wù)器接收到服務(wù)請(qǐng)求之后將服務(wù)請(qǐng)求重新定向到第二服務(wù)器中,由第二服務(wù)器為目標(biāo)帳號(hào)提供服務(wù)。這樣,可以有效防止目標(biāo)帳號(hào)的數(shù)據(jù)遷移時(shí)服務(wù)請(qǐng)求得不到響應(yīng)而影響用戶操作和游戲過程的流暢,提高了用戶體驗(yàn)。

作為一種可選的實(shí)施例,第一服務(wù)器判斷第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中是否存在目標(biāo)帳號(hào)包括:第一服務(wù)器判斷與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼中是否存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼,其中,與第一號(hào)碼集合內(nèi)的號(hào)碼對(duì)應(yīng)的帳號(hào)被配置為由第一服務(wù)器提供服務(wù);在判斷出存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼的情況下,第一服務(wù)器判斷出當(dāng)前服務(wù)的帳號(hào)中存在目標(biāo)帳號(hào),并將與目標(biāo)號(hào)碼對(duì)應(yīng)的帳號(hào)確定為目標(biāo)帳號(hào)。與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼可以是游戲玩家?guī)ぬ?hào)的id號(hào)碼,在進(jìn)行服務(wù)配置時(shí),第一號(hào)碼集合的帳號(hào)由第一服務(wù)器提供服務(wù),第二號(hào)碼集合的帳號(hào)由第二服務(wù)器提供服務(wù),因此,第一服務(wù)器判斷當(dāng)前服務(wù)的帳號(hào)中是否有第一號(hào)碼集合以外的目標(biāo)號(hào)碼,如果有,則說明當(dāng)前服務(wù)的帳號(hào)中存在需要轉(zhuǎn)移到別的服務(wù)器中的帳號(hào),與目標(biāo)號(hào)碼對(duì)應(yīng)的帳號(hào)確定為目標(biāo)帳號(hào)。通常情況下,第一號(hào)碼集合可以是多個(gè)號(hào)碼的集合,第一號(hào)碼集合中的多個(gè)號(hào)碼可以是不連續(xù)的號(hào)碼。

在一種應(yīng)用場(chǎng)景中,以一種簡(jiǎn)單的哈希算法為例,當(dāng)前服務(wù)器數(shù)量為3,對(duì)游戲玩家?guī)ぬ?hào)的id號(hào)碼進(jìn)行除三取余計(jì)算,由第一服務(wù)器為余數(shù)為1的id號(hào)碼所對(duì)應(yīng)的游戲玩家?guī)ぬ?hào)提供服務(wù),由第二服務(wù)器為為余數(shù)為2的id號(hào)碼所對(duì)應(yīng)的游戲玩家?guī)ぬ?hào)提供服務(wù),由第三服務(wù)器為為余數(shù)為0的id號(hào)碼所對(duì)應(yīng)的游戲玩家?guī)ぬ?hào)提供服務(wù);在當(dāng)前服務(wù)器數(shù)量發(fā)生變化,增加到4臺(tái)時(shí),控制設(shè)備檢測(cè)到服務(wù)器數(shù)量發(fā)生變化,將變化信息發(fā)送到每個(gè)服務(wù)器,每個(gè)服務(wù)器通過計(jì)算得到由自身提供服務(wù)的游戲玩家的id號(hào)碼所對(duì)應(yīng)的帳號(hào),例如,對(duì)游戲玩家?guī)ぬ?hào)的id號(hào)碼進(jìn)行除四取余計(jì)算,由第一服務(wù)器為余數(shù)為1的id號(hào)碼所對(duì)應(yīng)的游戲玩家?guī)ぬ?hào)提供服務(wù),由第二服務(wù)器為為余數(shù)為2的id號(hào)碼所對(duì)應(yīng)的游戲玩家?guī)ぬ?hào)提供服務(wù),由第三服務(wù)器為為余數(shù)為3的id號(hào)碼所對(duì)應(yīng)的游戲玩家?guī)ぬ?hào)提供服務(wù),由第四服務(wù)器為為余數(shù)為0的id號(hào)碼所對(duì)應(yīng)的游戲玩家?guī)ぬ?hào)提供服務(wù),這樣,在原來的第一服務(wù)器、第二服務(wù)器、第三服務(wù)器中都會(huì)存在不繼續(xù)由原服務(wù)器提供服務(wù)的帳號(hào),原服務(wù)器將對(duì)應(yīng)的帳號(hào)數(shù)據(jù)遷移到新的對(duì)應(yīng)服務(wù)器中去。

作為一種可選的實(shí)施例,在第一服務(wù)器判斷與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼中是否存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼之前,第一服務(wù)器獲取對(duì)當(dāng)前服務(wù)的帳號(hào)進(jìn)行哈希操作所得到的號(hào)碼,其中,所得到的號(hào)碼為與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼。對(duì)當(dāng)前服務(wù)的帳號(hào)進(jìn)行哈希操作可以是通過一致性哈希算法對(duì)當(dāng)前服務(wù)的帳號(hào)進(jìn)行操作,在確定第一服務(wù)器提供服務(wù)的第一號(hào)碼集合時(shí),可以通過對(duì)當(dāng)前服務(wù)的帳號(hào)進(jìn)行一致性哈希操作,得到一部分號(hào)碼,這部分號(hào)碼所對(duì)應(yīng)的帳號(hào)就是分配給第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)。

作為一種可選的實(shí)施例,第一服務(wù)器將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器包括:第一服務(wù)器獲取與目標(biāo)帳號(hào)所位于的第二號(hào)碼集合所對(duì)應(yīng)的第二服務(wù)器的地址;第一服務(wù)器根據(jù)第二服務(wù)器的地址將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器。第二號(hào)碼集合所對(duì)應(yīng)的目標(biāo)帳號(hào)被分配給第二服務(wù)器提供服務(wù),第一服務(wù)器將第一服務(wù)器中所有目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器中。第一服務(wù)器通過主動(dòng)檢索到目標(biāo)帳號(hào),然后將目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器中,能夠提高數(shù)據(jù)遷移效率。

圖3是根據(jù)本發(fā)明實(shí)施例的一種可選的數(shù)據(jù)遷移方法的流程圖,如圖3所示,該方法可以包括以下步驟:

步驟s302,控制設(shè)備檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群。

步驟s304,控制設(shè)備向服務(wù)器集群中的所有服務(wù)器發(fā)送狀態(tài)變更信息,其中,狀態(tài)變更信息用于表示服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更。

步驟s306,在控制設(shè)備接收到所有服務(wù)器中的目標(biāo)服務(wù)器發(fā)送的遷移完成信息之后,控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息,其中,遷移完成信息用于表示目標(biāo)服務(wù)器完成對(duì)數(shù)據(jù)的遷移,目標(biāo)服務(wù)器中為所有服務(wù)器中需要進(jìn)行數(shù)據(jù)遷移的服務(wù)器。

通過上述步驟s302至步驟s306,控制設(shè)備檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更之后,向服務(wù)器集群中的所有服務(wù)器發(fā)送狀態(tài)變更信息,以提示服務(wù)器當(dāng)前有新增加或減少的服務(wù)器,服務(wù)器響應(yīng)于狀態(tài)變更信息對(duì)自身提供服務(wù)的帳號(hào)信息進(jìn)行遷移,在遷移完成之后,控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息,可以解決由于現(xiàn)有技術(shù)的分布式集群服務(wù)發(fā)現(xiàn)組件功能單一導(dǎo)致的不利于數(shù)據(jù)遷移的技術(shù)問題,進(jìn)而達(dá)到自動(dòng)完成用戶數(shù)據(jù)遷移的技術(shù)效果。

在步驟s302提供的技術(shù)方案中,控制設(shè)備可以實(shí)時(shí)檢測(cè)服務(wù)器集群中的服務(wù)器數(shù)量,服務(wù)器數(shù)量的變更包括服務(wù)器數(shù)量增加或減少,例如,可以通過檢測(cè)心跳包的方式檢測(cè),也可以通過別的方式檢測(cè),本發(fā)明實(shí)施例的服務(wù)器集群是有狀態(tài)的分布式服務(wù)器集群。

在步驟s304提供的技術(shù)方案中,控制設(shè)備在檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變化后,向服務(wù)器集群中的所有服務(wù)器發(fā)送狀態(tài)變更信息,以提示服務(wù)器集群中的所有服務(wù)器,服務(wù)器的數(shù)量發(fā)生變更。服務(wù)器根據(jù)控制設(shè)備發(fā)送的狀態(tài)變更信息對(duì)每個(gè)服務(wù)器中提供服務(wù)的目標(biāo)帳號(hào)進(jìn)行數(shù)據(jù)轉(zhuǎn)移,具體數(shù)據(jù)轉(zhuǎn)移的方式如s202至步驟s208及其具體實(shí)施方式中所述,在此不再贅述。

在步驟s306提供的技術(shù)方案中,服務(wù)器在進(jìn)行完數(shù)據(jù)遷移工作之后,向控制設(shè)備發(fā)送遷移完成信息,每個(gè)服務(wù)器在完成自身的數(shù)據(jù)遷移之后,會(huì)向控制設(shè)備發(fā)送完成信息,在所有的服務(wù)器完成數(shù)據(jù)遷移工作之后,控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息,控制設(shè)備重新對(duì)服務(wù)器集群中的服務(wù)器數(shù)量進(jìn)行更新。目標(biāo)服務(wù)器是所有服務(wù)器中需要進(jìn)行數(shù)據(jù)遷移目標(biāo)服務(wù)器可以是所有服務(wù)器,也可以是部分服務(wù)器。

作為一種可選的實(shí)施例,在控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息之后,控制設(shè)備將更新后的集群狀態(tài)信息同步到服務(wù)設(shè)備,其中,服務(wù)設(shè)備用于根據(jù)更新后的集群狀態(tài)信息將服務(wù)請(qǐng)求發(fā)送到服務(wù)器集群中對(duì)應(yīng)的服務(wù)器。服務(wù)設(shè)備可以是服務(wù)消費(fèi)者,服務(wù)消費(fèi)者可以根據(jù)更新后的集群狀態(tài)信息將服務(wù)請(qǐng)求發(fā)送到服務(wù)器集群中對(duì)應(yīng)的服務(wù)器中。

作為一種可選的實(shí)施例,控制設(shè)備檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更包括:控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,心跳包用于指示服務(wù)器集群中增加或減少的服務(wù)器;或者控制設(shè)備通過獲取的配置信息檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,配置信息用于表示服務(wù)器集群中增加或減少的服務(wù)器??刂圃O(shè)備既可以通過心跳包檢測(cè)服務(wù)器集群中服務(wù)器數(shù)量發(fā)生變化,又可以通過獲取到的配置信息檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變化。

作為一種可選的實(shí)施例,控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更包括:控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的第一服務(wù)器出現(xiàn)故障;在控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更之后,控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息。如果控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的第一服務(wù)器發(fā)生故障,則控制設(shè)備可以更新服務(wù)器集群中的集群狀態(tài)信息。

本發(fā)明實(shí)施例的技術(shù)方案可以應(yīng)用于有狀態(tài)的分布式服務(wù)器集群,提供一種通用的服務(wù)發(fā)現(xiàn)方法,讓服務(wù)消費(fèi)者可以正確地找到對(duì)應(yīng)的服務(wù)提供者,當(dāng)服務(wù)提供者集群需要進(jìn)行擴(kuò)容,縮容或者集群中某個(gè)節(jié)點(diǎn)出現(xiàn)問題時(shí),該服務(wù)發(fā)現(xiàn)組件可以自動(dòng)進(jìn)行處理,應(yīng)對(duì)相應(yīng)的變化。

服務(wù)發(fā)現(xiàn)控制中心與服務(wù)提供者集群中的每個(gè)節(jié)點(diǎn)相連,并通過心跳包來獲知集群中各個(gè)節(jié)點(diǎn)的狀態(tài),當(dāng)服務(wù)提供者集群中需要增加或者減少節(jié)點(diǎn)時(shí)(對(duì)應(yīng)于擴(kuò)容和縮容),控制節(jié)點(diǎn)會(huì)將該信息通知給集群中的所有節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)會(huì)檢查自身所服務(wù)的用戶,查找出當(dāng)前不由自己服務(wù)的用戶集,并將該用戶集中的用戶遷徙到當(dāng)前所屬的服務(wù)節(jié)點(diǎn)中去,在遷徙完成后,節(jié)點(diǎn)會(huì)通知控制中心遷徙完成,等到所有的服務(wù)提供節(jié)點(diǎn)遷徙完成后,控制中心會(huì)將會(huì)更新服務(wù)消費(fèi)端的服務(wù)提供者集群信息。當(dāng)服務(wù)提供者集群中某一個(gè)節(jié)點(diǎn)出現(xiàn)問題時(shí),控制節(jié)點(diǎn)會(huì)根據(jù)心跳包檢測(cè)實(shí)時(shí)地更新服務(wù)消費(fèi)端的服務(wù)提供者集群信息,由服務(wù)消費(fèi)端進(jìn)行二次選擇集群中的某個(gè)節(jié)點(diǎn)繼續(xù)提供服務(wù),當(dāng)該故障節(jié)點(diǎn)被重新啟用后,控制中心會(huì)通過上述同樣的方式,對(duì)服務(wù)提供集群中的節(jié)點(diǎn)數(shù)據(jù)進(jìn)行自動(dòng)遷徙后,再更新服務(wù)消費(fèi)端的服務(wù)提供者集群信息。

本發(fā)明還提供了一種優(yōu)選實(shí)施例,圖4是根據(jù)本發(fā)明實(shí)施例的一種有狀態(tài)情況下的分布式服務(wù)集群服務(wù)的示意圖,如圖4所示,分布式服務(wù)集群中的節(jié)點(diǎn)會(huì)定時(shí)地上報(bào)消息給組件控制中心,一個(gè)服務(wù)節(jié)點(diǎn)對(duì)應(yīng)一臺(tái)服務(wù)器,而服務(wù)消費(fèi)者會(huì)定時(shí)地去組件控制中心拉取最新的服務(wù)集群信息,當(dāng)服務(wù)消費(fèi)者需要服務(wù)時(shí),則根據(jù)服務(wù)集群信息,通過一致性hash算法來選擇其中一個(gè)服務(wù)節(jié)點(diǎn)為其提供服務(wù),例如,分布式集群中有3個(gè)服務(wù)節(jié)點(diǎn),這三個(gè)節(jié)點(diǎn)可能分布于不同的機(jī)器上,服務(wù)消費(fèi)者通過從控制中心獲得信息,通過一致性hash算法,選擇節(jié)點(diǎn)3為其提供服務(wù)。具體到游戲服務(wù)器來說,一個(gè)用戶會(huì)被分配定位到一個(gè)服務(wù)器節(jié)點(diǎn)上去,而該用戶的數(shù)據(jù)則在節(jié)點(diǎn)中保存,所以該節(jié)點(diǎn)為一個(gè)有狀態(tài)的服務(wù)節(jié)點(diǎn)。所有的用戶也就被一致性hash算法分成了若干個(gè)號(hào)碼集合,每個(gè)號(hào)碼集合由一個(gè)節(jié)點(diǎn)提供服務(wù)。第一號(hào)碼集合中的所有號(hào)碼由第一服務(wù)器提供服務(wù),第二號(hào)碼集合中的所有號(hào)碼由第二服務(wù)器提供服務(wù),在每個(gè)號(hào)碼集合中可能有連續(xù)的號(hào)碼,也可能全是分散的號(hào)碼。

例如,在第一時(shí)刻,每個(gè)用戶賬號(hào)都有對(duì)應(yīng)的服務(wù)器節(jié)點(diǎn),所有用戶帳號(hào)分配到各自的服務(wù)器節(jié)點(diǎn)上,由對(duì)應(yīng)的服務(wù)器為該用戶提供服務(wù),在第二時(shí)刻,當(dāng)出現(xiàn)服務(wù)器數(shù)量變化時(shí),通過一致性hash算法根據(jù)用戶id計(jì)算所有用戶賬號(hào)對(duì)應(yīng)的服務(wù)器節(jié)點(diǎn),需要重新將所有用戶帳號(hào)分配到對(duì)應(yīng)的服務(wù)器節(jié)點(diǎn),其中,有些用戶對(duì)應(yīng)的服務(wù)器發(fā)生變化,有些用戶對(duì)應(yīng)的服務(wù)器不發(fā)生變化,對(duì)于不變化服務(wù)器的用戶數(shù)據(jù),無需進(jìn)行操作,對(duì)于需要變化服務(wù)器的用戶數(shù)據(jù),由當(dāng)前的服務(wù)器將該用戶數(shù)據(jù)遷移到對(duì)應(yīng)的服務(wù)器中。

通過一致性hash算法計(jì)算得到的服務(wù)器節(jié)點(diǎn),然后將用戶數(shù)據(jù)遷移到對(duì)應(yīng)的服務(wù)器中,能夠最大程度的減少需要遷移的數(shù)據(jù)的量,在服務(wù)器數(shù)量發(fā)生變化時(shí),減輕和平衡服務(wù)器壓力。

在上述的情況下,當(dāng)用戶數(shù)量發(fā)生大規(guī)模的變化或者其他原因下,服務(wù)集群中服務(wù)節(jié)點(diǎn)個(gè)數(shù)變化,本發(fā)明實(shí)施例提供了一種節(jié)點(diǎn)變化數(shù)據(jù)遷移方法,圖5是根據(jù)本發(fā)明實(shí)施例的一種節(jié)點(diǎn)變化數(shù)據(jù)遷移方法的流程圖,如圖5所示,首先,控制中心會(huì)通過心跳包或者用戶主動(dòng)配置更新等方式感知到集群中的節(jié)點(diǎn)數(shù)目發(fā)生了變更,比如當(dāng)節(jié)點(diǎn)增加或者較少的時(shí)候,可以通過用戶改動(dòng)配置來標(biāo)記某個(gè)節(jié)點(diǎn)被增加或者被下架,并重新加載控制中心的配置信息。

然后,控制中心會(huì)判斷該集群的屬性,如果該集群屬于無狀態(tài)的集群時(shí),則可以直接更新該集群的狀態(tài)信息,然后當(dāng)服務(wù)消費(fèi)端定時(shí)拉取信息時(shí)候,在服務(wù)消費(fèi)端更新該服務(wù)集群的信息;

但是如果該服務(wù)集群是有狀態(tài)的集群時(shí),則需要首先控制中心該當(dāng)前的狀態(tài)變更通知給該集群中的所有節(jié)點(diǎn);

當(dāng)集群中的所有節(jié)點(diǎn)獲知到最新的集群狀態(tài)信息后,會(huì)進(jìn)行自檢過程,在自檢過程中,節(jié)點(diǎn)會(huì)按照服務(wù)消費(fèi)端采用的一致性hash算法,來計(jì)算當(dāng)前所服務(wù)的號(hào)段的用戶,是不是應(yīng)該被該節(jié)點(diǎn)所服務(wù),并確認(rèn)出一個(gè)外部服務(wù)用戶的用戶集合,并對(duì)該用戶集合的所有用戶進(jìn)行用戶數(shù)據(jù)遷移操作,在遷移過程中,如果有外部用戶集合中的用戶服務(wù)請(qǐng)求出現(xiàn),則將該請(qǐng)求重定向到該用戶應(yīng)該被服務(wù)的節(jié)點(diǎn)中去,當(dāng)遷移操作完成之后,節(jié)點(diǎn)向控制中心發(fā)送一個(gè)遷移完成請(qǐng)求。

當(dāng)控制中心接到所有服務(wù)集群中的節(jié)點(diǎn)的遷移完成請(qǐng)求之后,控制中心會(huì)更新該集群的集群狀態(tài)信息,而之后,當(dāng)服務(wù)消費(fèi)端定時(shí)來拉取集群信息的時(shí)候,將該集群信息同步給服務(wù)消費(fèi)端,在此之后,服務(wù)消費(fèi)端就可以利用最新的服務(wù)集群信息選擇服務(wù)節(jié)點(diǎn)。

當(dāng)集群中的某一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),本發(fā)明實(shí)施例的數(shù)據(jù)遷移方法將服務(wù)發(fā)現(xiàn)組件采用如下過程進(jìn)行處理,圖6是根據(jù)本發(fā)明實(shí)施例的一種節(jié)點(diǎn)故障處理方法的流程圖,如圖6所示,該方法包括以下步驟:

首先,控制中心將根據(jù)心跳包檢測(cè)出某一節(jié)點(diǎn)出現(xiàn)故障,然后控制中心將會(huì)直接更新該服務(wù)集群的信息,以便服務(wù)消費(fèi)端可以迅速地拉取到該信息。當(dāng)服務(wù)消費(fèi)端獲知該信息后,對(duì)于該節(jié)點(diǎn)的請(qǐng)求將會(huì)重新hash到一個(gè)可用的節(jié)點(diǎn)上去,相當(dāng)于將該節(jié)點(diǎn)上的用戶被分散到集群中的其他節(jié)點(diǎn)上去。當(dāng)后臺(tái)人員手動(dòng)介入,修復(fù)了該故障節(jié)點(diǎn)后,就可以將該故障節(jié)點(diǎn)重新上架,然后該節(jié)點(diǎn)就會(huì)重新使用上述的節(jié)點(diǎn)變化數(shù)據(jù)遷移過程,將該節(jié)點(diǎn)恢復(fù)到服務(wù)集群中去。

本發(fā)明實(shí)施例的服務(wù)發(fā)現(xiàn)組件可以應(yīng)用于全區(qū)全服的游戲和分區(qū)分服游戲等多個(gè)項(xiàng)目的后臺(tái)服務(wù)器中,經(jīng)歷過多次數(shù)十萬人規(guī)模的測(cè)試,測(cè)試結(jié)果表明,該服務(wù)發(fā)現(xiàn)組件可以很好地支持服務(wù)器集群的擴(kuò)容,縮容操作,并當(dāng)集群中的節(jié)點(diǎn)出現(xiàn)故障時(shí),可以迅速地將玩家轉(zhuǎn)移到其他服務(wù)節(jié)點(diǎn)中去,并可以做到對(duì)用戶的無感知,用戶體驗(yàn)很好。需要說明的是,本發(fā)明實(shí)施例的技術(shù)方案針對(duì)于有狀態(tài)服務(wù)器的數(shù)據(jù)遷移過程對(duì)于服務(wù)消費(fèi)端是透明的,即服務(wù)消費(fèi)端并不需要關(guān)心后端的數(shù)據(jù)遷移是否發(fā)生,而僅僅需要根據(jù)當(dāng)前所獲得的服務(wù)集群信息,進(jìn)行路由選擇即可,這樣可以使得后端服務(wù)系統(tǒng)內(nèi)部的變化對(duì)于用戶而言是無感知的,用戶的體驗(yàn)效果也就可以達(dá)到最好。

本發(fā)明實(shí)施例的技術(shù)方案可以同時(shí)兼容有狀態(tài)的分布式服務(wù)集群和無狀態(tài)的分布式服務(wù)集群,為其提供服務(wù)發(fā)現(xiàn)功能,并可以做到對(duì)分布式服務(wù)集群中的節(jié)點(diǎn)出現(xiàn)變化的時(shí)候,自動(dòng)對(duì)有狀態(tài)服務(wù)集群內(nèi)節(jié)點(diǎn)的用戶數(shù)據(jù)進(jìn)行自動(dòng)遷徙,并更新服務(wù)消費(fèi)者的服務(wù)集群信息以便其快速選擇路由,一切對(duì)用戶操作做到無感知,提高了用戶體驗(yàn)。

需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。

通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。

實(shí)施例2

根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述數(shù)據(jù)遷移方法的數(shù)據(jù)遷移裝置。圖7是根據(jù)本發(fā)明實(shí)施例的一種可選的數(shù)據(jù)遷移裝置的示意圖,如圖7所示,該裝置可以包括:

第一接收單元10,用于通過第一服務(wù)器接收控制設(shè)備發(fā)送的狀態(tài)變更信息,其中,所述狀態(tài)變更信息用于表示服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,所述服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群,所述服務(wù)器集群包括所述第一服務(wù)器。

判斷單元20,用于通過所述第一服務(wù)器判斷所述第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中是否存在目標(biāo)帳號(hào),其中,所述目標(biāo)帳號(hào)被配置為由所述服務(wù)器集群中的第二服務(wù)器提供服務(wù)。

遷移單元30,用于在判斷出所述第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中存在所述目標(biāo)帳號(hào)的情況下,通過所述第一服務(wù)器將所述第一服務(wù)器上所述目標(biāo)帳號(hào)的數(shù)據(jù)遷移到所述第二服務(wù)器。

發(fā)送單元40,用于在完成將所述目標(biāo)帳號(hào)的數(shù)據(jù)遷移到所述第二服務(wù)器之后,通過所述第一服務(wù)器向所述控制設(shè)備發(fā)送遷移完成信息,其中,所述遷移完成信息用于表示所述第一服務(wù)器完成對(duì)所述目標(biāo)帳號(hào)的數(shù)據(jù)的遷移。

需要說明的是,該實(shí)施例中的第一接收單元10可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s202,該實(shí)施例中的判斷單元20可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s204,該實(shí)施例中的遷移單元30可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s206,該實(shí)施例中的發(fā)送單元40可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s208。

此處需要說明的是,上述模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在如圖1所示的硬件環(huán)境中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)。

通過上述模塊,可以解決由于現(xiàn)有技術(shù)的分布式集群服務(wù)發(fā)現(xiàn)組件功能單一導(dǎo)致的不利于數(shù)據(jù)遷移的技術(shù)問題,進(jìn)而達(dá)到自動(dòng)完成用戶數(shù)據(jù)遷移的技術(shù)效果。

可選地,該裝置還包括:第二接收單元,用于在第一服務(wù)器將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器的過程中,通過第一服務(wù)器接收到目標(biāo)帳號(hào)的服務(wù)請(qǐng)求;定向單元,用于通過第一服務(wù)器將服務(wù)請(qǐng)求重定向到第二服務(wù)器,其中,第二服務(wù)器用于響應(yīng)服務(wù)請(qǐng)求向目標(biāo)帳號(hào)提供服務(wù)。

可選地,判斷單元20包括:判斷模塊,用于通過第一服務(wù)器判斷與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼中是否存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼,其中,與第一號(hào)碼集合內(nèi)的號(hào)碼對(duì)應(yīng)的帳號(hào)被配置為由第一服務(wù)器提供服務(wù);確定模塊,用于在判斷出存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼的情況下,第一服務(wù)器判斷出當(dāng)前服務(wù)的帳號(hào)中存在目標(biāo)帳號(hào),并將與目標(biāo)號(hào)碼對(duì)應(yīng)的帳號(hào)確定為目標(biāo)帳號(hào)。

可選地,該裝置還包括:獲取單元,用于在第一服務(wù)器判斷與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼中是否存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼之前,通過第一服務(wù)器獲取對(duì)當(dāng)前服務(wù)的帳號(hào)進(jìn)行哈希操作所得到的號(hào)碼,其中,所得到的號(hào)碼為與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼。

可選地,遷移單元30用于:通過第一服務(wù)器獲取與目標(biāo)帳號(hào)所位于的第二號(hào)碼集合所對(duì)應(yīng)的第二服務(wù)器的地址;通過第一服務(wù)器根據(jù)第二服務(wù)器的地址將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器。

根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述數(shù)據(jù)遷移方法的數(shù)據(jù)遷移裝置。圖8是根據(jù)本發(fā)明實(shí)施例的一種可選的數(shù)據(jù)遷移裝置的示意圖,如圖8所示,該裝置可以包括:

檢測(cè)單元50,用于通過控制設(shè)備檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群;

發(fā)送單元60,用于通過控制設(shè)備向服務(wù)器集群中的所有服務(wù)器發(fā)送狀態(tài)變更信息,其中,狀態(tài)變更信息用于表示服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更;

更新單元70,用于在控制設(shè)備接收到所有服務(wù)器中的目標(biāo)服務(wù)器發(fā)送的遷移完成信息之后,通過控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息,其中,遷移完成信息用于表示目標(biāo)服務(wù)器完成對(duì)數(shù)據(jù)的遷移,目標(biāo)服務(wù)器中為所有服務(wù)器中需要進(jìn)行數(shù)據(jù)遷移的服務(wù)器。

需要說明的是,該實(shí)施例中的檢測(cè)單元50可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s302,該實(shí)施例中的發(fā)送單元60可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s304,該實(shí)施例中的更新單元70可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s306。

此處需要說明的是,上述模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在如圖1所示的硬件環(huán)境中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)。

通過上述模塊,可以解決了由于現(xiàn)有技術(shù)的分布式集群服務(wù)發(fā)現(xiàn)組件功能單一導(dǎo)致的不利于數(shù)據(jù)遷移的技術(shù)問題,進(jìn)而達(dá)到自動(dòng)完成用戶數(shù)據(jù)遷移的技術(shù)效果。

可選地,該裝置還包括:同步單元,用于在控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息之后,通過控制設(shè)備將更新后的集群狀態(tài)信息同步到服務(wù)設(shè)備,其中,服務(wù)設(shè)備用于根據(jù)更新后的集群狀態(tài)信息將服務(wù)請(qǐng)求發(fā)送到服務(wù)器集群中對(duì)應(yīng)的服務(wù)器。

可選地,檢測(cè)單元用于:通過控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,心跳包用于指示服務(wù)器集群中增加或減少的服務(wù)器;或者通過控制設(shè)備通過獲取的配置信息檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,配置信息用于表示服務(wù)器集群中增加或減少的服務(wù)器。

可選地,檢測(cè)單元用于通過控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的第一服務(wù)器出現(xiàn)故障;裝置還包括:更新單元,用于在控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更之后,通過控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息。

此處需要說明的是,上述模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在如圖1所示的硬件環(huán)境中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn),其中,硬件環(huán)境包括網(wǎng)絡(luò)環(huán)境。

實(shí)施例3

根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述數(shù)據(jù)遷移方法的服務(wù)器或終端。

圖9是根據(jù)本發(fā)明實(shí)施例的一種終端的結(jié)構(gòu)框圖,如圖9所示,該終端可以包括:一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器201、存儲(chǔ)器203、以及傳輸裝置205(如上述實(shí)施例中的發(fā)送裝置),如圖9所示,該終端還可以包括輸入輸出設(shè)備207。

其中,存儲(chǔ)器203可用于存儲(chǔ)軟件程序以及模塊,如本發(fā)明實(shí)施例中的數(shù)據(jù)遷移方法和裝置對(duì)應(yīng)的程序指令/模塊,處理器201通過運(yùn)行存儲(chǔ)在存儲(chǔ)器203內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的數(shù)據(jù)遷移方法。存儲(chǔ)器203可包括高速隨機(jī)存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器203可進(jìn)一步包括相對(duì)于處理器201遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至終端。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。

上述的傳輸裝置205用于經(jīng)由一個(gè)網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù),還可以用于處理器與存儲(chǔ)器之間的數(shù)據(jù)傳輸。上述的網(wǎng)絡(luò)具體實(shí)例可包括有線網(wǎng)絡(luò)及無線網(wǎng)絡(luò)。在一個(gè)實(shí)例中,傳輸裝置205包括一個(gè)網(wǎng)絡(luò)適配器(networkinterfacecontroller,nic),其可通過網(wǎng)線與其他網(wǎng)絡(luò)設(shè)備與路由器相連從而可與互聯(lián)網(wǎng)或局域網(wǎng)進(jìn)行通訊。在一個(gè)實(shí)例中,傳輸裝置205為射頻(radiofrequency,rf)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。

其中,具體地,存儲(chǔ)器203用于存儲(chǔ)應(yīng)用程序。

處理器201可以通過傳輸裝置205調(diào)用存儲(chǔ)器203存儲(chǔ)的應(yīng)用程序,以執(zhí)行下述步驟:第一服務(wù)器接收控制設(shè)備發(fā)送的狀態(tài)變更信息,其中,狀態(tài)變更信息用于表示服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群,服務(wù)器集群包括第一服務(wù)器;第一服務(wù)器判斷第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中是否存在目標(biāo)帳號(hào),其中,目標(biāo)帳號(hào)被配置為由服務(wù)器集群中的第二服務(wù)器提供服務(wù);在判斷出第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中存在目標(biāo)帳號(hào)的情況下,第一服務(wù)器將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器;在完成將目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器之后,第一服務(wù)器向控制設(shè)備發(fā)送遷移完成信息,其中,遷移完成信息用于表示第一服務(wù)器完成對(duì)目標(biāo)帳號(hào)的數(shù)據(jù)的遷移。

處理器201還用于執(zhí)行下述步驟:第一服務(wù)器接收到目標(biāo)帳號(hào)的服務(wù)請(qǐng)求;第一服務(wù)器將服務(wù)請(qǐng)求重定向到第二服務(wù)器,其中,第二服務(wù)器用于響應(yīng)服務(wù)請(qǐng)求向目標(biāo)帳號(hào)提供服務(wù)。

處理器201還用于執(zhí)行下述步驟:第一服務(wù)器判斷與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼中是否存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼,其中,與第一號(hào)碼集合內(nèi)的號(hào)碼對(duì)應(yīng)的帳號(hào)被配置為由第一服務(wù)器提供服務(wù);在判斷出存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼的情況下,第一服務(wù)器判斷出當(dāng)前服務(wù)的帳號(hào)中存在目標(biāo)帳號(hào),并將與目標(biāo)號(hào)碼對(duì)應(yīng)的帳號(hào)確定為目標(biāo)帳號(hào)。

處理器201還用于執(zhí)行下述步驟:在第一服務(wù)器判斷與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼中是否存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼之前,第一服務(wù)器獲取對(duì)當(dāng)前服務(wù)的帳號(hào)進(jìn)行哈希操作所得到的號(hào)碼,其中,所得到的號(hào)碼為與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼。

處理器201還用于執(zhí)行下述步驟:第一服務(wù)器將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器包括:第一服務(wù)器獲取與目標(biāo)帳號(hào)所位于的第二號(hào)碼集合所對(duì)應(yīng)的第二服務(wù)器的地址;第一服務(wù)器根據(jù)第二服務(wù)器的地址將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器。

采用本發(fā)明實(shí)施例,通過第一服務(wù)器接收控制設(shè)備發(fā)送的狀態(tài)變更信息,判斷第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中是否存在目標(biāo)帳號(hào),如果存在,則將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器,并在遷移完成之后向控制設(shè)備發(fā)送遷移完成信息,可以解決由于現(xiàn)有技術(shù)的分布式集群服務(wù)發(fā)現(xiàn)組件功能單一導(dǎo)致的不利于數(shù)據(jù)遷移的技術(shù)問題,進(jìn)而達(dá)到自動(dòng)完成用戶數(shù)據(jù)遷移的技術(shù)效果。

處理器201可以通過傳輸裝置205調(diào)用存儲(chǔ)器203存儲(chǔ)的應(yīng)用程序,以執(zhí)行下述步驟:控制設(shè)備檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群;控制設(shè)備向服務(wù)器集群中的所有服務(wù)器發(fā)送狀態(tài)變更信息,其中,狀態(tài)變更信息用于表示服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更;在控制設(shè)備接收到所有服務(wù)器中的目標(biāo)服務(wù)器發(fā)送的遷移完成信息之后,控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息,其中,遷移完成信息用于表示目標(biāo)服務(wù)器完成對(duì)數(shù)據(jù)的遷移,目標(biāo)服務(wù)器中為所有服務(wù)器中需要進(jìn)行數(shù)據(jù)遷移的服務(wù)器。

處理器201還用于執(zhí)行下述步驟:在控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息之后,控制設(shè)備將更新后的集群狀態(tài)信息同步到服務(wù)設(shè)備,其中,服務(wù)設(shè)備用于根據(jù)更新后的集群狀態(tài)信息將服務(wù)請(qǐng)求發(fā)送到服務(wù)器集群中對(duì)應(yīng)的服務(wù)器。

處理器201還用于執(zhí)行下述步驟:控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,心跳包用于指示服務(wù)器集群中增加或減少的服務(wù)器;或者控制設(shè)備通過獲取的配置信息檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,配置信息用于表示服務(wù)器集群中增加或減少的服務(wù)器。

處理器201還用于執(zhí)行下述步驟:控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更包括:控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的第一服務(wù)器出現(xiàn)故障;在控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更之后,控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息

可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例1和實(shí)施例2中所描述的示例,本實(shí)施例在此不再贅述。

本領(lǐng)域普通技術(shù)人員可以理解,圖9所示的結(jié)構(gòu)僅為示意,終端可以是智能手機(jī)(如android手機(jī)、ios手機(jī)等)、平板電腦、掌上電腦以及移動(dòng)互聯(lián)網(wǎng)設(shè)備(mobileinternetdevices,mid)、pad等終端設(shè)備。圖9其并不對(duì)上述電子裝置的結(jié)構(gòu)造成限定。例如,終端還可包括比圖9中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖9所示不同的配置。

本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤、只讀存儲(chǔ)器(read-onlymemory,rom)、隨機(jī)存取器(randomaccessmemory,ram)、磁盤或光盤等。

實(shí)施例4

本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)??蛇x地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以用于執(zhí)行數(shù)據(jù)遷移方法的程序代碼。

可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以位于上述實(shí)施例所示的網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備中的至少一個(gè)網(wǎng)絡(luò)設(shè)備上。

可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:

s1,第一服務(wù)器接收控制設(shè)備發(fā)送的狀態(tài)變更信息,其中,狀態(tài)變更信息用于表示服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群,服務(wù)器集群包括第一服務(wù)器;

s2,第一服務(wù)器判斷第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中是否存在目標(biāo)帳號(hào),其中,目標(biāo)帳號(hào)被配置為由服務(wù)器集群中的第二服務(wù)器提供服務(wù);

s3,在判斷出第一服務(wù)器當(dāng)前服務(wù)的帳號(hào)中存在目標(biāo)帳號(hào)的情況下,第一服務(wù)器將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器;

s4,在完成將目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器之后,第一服務(wù)器向控制設(shè)備發(fā)送遷移完成信息,其中,遷移完成信息用于表示第一服務(wù)器完成對(duì)目標(biāo)帳號(hào)的數(shù)據(jù)的遷移。

可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:第一服務(wù)器接收到目標(biāo)帳號(hào)的服務(wù)請(qǐng)求;第一服務(wù)器將服務(wù)請(qǐng)求重定向到第二服務(wù)器,其中,第二服務(wù)器用于響應(yīng)服務(wù)請(qǐng)求向目標(biāo)帳號(hào)提供服務(wù)。

可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:第一服務(wù)器判斷與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼中是否存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼,其中,與第一號(hào)碼集合內(nèi)的號(hào)碼對(duì)應(yīng)的帳號(hào)被配置為由第一服務(wù)器提供服務(wù);在判斷出存在位于第一號(hào)碼集合之外的目標(biāo)號(hào)碼的情況下,第一服務(wù)器判斷出當(dāng)前服務(wù)的帳號(hào)中存在目標(biāo)帳號(hào),并將與目標(biāo)號(hào)碼對(duì)應(yīng)的帳號(hào)確定為目標(biāo)帳號(hào)。

可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:第一服務(wù)器獲取對(duì)當(dāng)前服務(wù)的帳號(hào)進(jìn)行哈希操作所得到的號(hào)碼,其中,所得到的號(hào)碼為與當(dāng)前服務(wù)的帳號(hào)對(duì)應(yīng)的號(hào)碼。

可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:第一服務(wù)器獲取與目標(biāo)帳號(hào)所位于的第二號(hào)碼集合所對(duì)應(yīng)的第二服務(wù)器的地址;第一服務(wù)器根據(jù)第二服務(wù)器的地址將第一服務(wù)器上目標(biāo)帳號(hào)的數(shù)據(jù)遷移到第二服務(wù)器。

本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)??蛇x地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以用于執(zhí)行數(shù)據(jù)遷移方法的程序代碼。

可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以位于上述實(shí)施例所示的網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備中的至少一個(gè)網(wǎng)絡(luò)設(shè)備上。

可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:

s1,控制設(shè)備檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,服務(wù)器集群為有狀態(tài)的分布式服務(wù)器集群;

s2,控制設(shè)備向服務(wù)器集群中的所有服務(wù)器發(fā)送狀態(tài)變更信息,其中,狀態(tài)變更信息用于表示服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更;

s3,在控制設(shè)備接收到所有服務(wù)器中的目標(biāo)服務(wù)器發(fā)送的遷移完成信息之后,控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息,其中,遷移完成信息用于表示目標(biāo)服務(wù)器完成對(duì)數(shù)據(jù)的遷移,目標(biāo)服務(wù)器中為所有服務(wù)器中需要進(jìn)行數(shù)據(jù)遷移的服務(wù)器。

可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:在控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息之后,控制設(shè)備將更新后的集群狀態(tài)信息同步到服務(wù)設(shè)備,其中,服務(wù)設(shè)備用于根據(jù)更新后的集群狀態(tài)信息將服務(wù)請(qǐng)求發(fā)送到服務(wù)器集群中對(duì)應(yīng)的服務(wù)器。

可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,心跳包用于指示服務(wù)器集群中增加或減少的服務(wù)器;或者控制設(shè)備通過獲取的配置信息檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更,其中,配置信息用于表示服務(wù)器集群中增加或減少的服務(wù)器。

可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的第一服務(wù)器出現(xiàn)故障;在控制設(shè)備通過心跳包檢測(cè)到服務(wù)器集群中的服務(wù)器數(shù)量發(fā)生變更之后,方法還包括:控制設(shè)備更新服務(wù)器集群的集群狀態(tài)信息。

可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例1和實(shí)施例2中所描述的示例,本實(shí)施例在此不再贅述。

可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以包括但不限于:u盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

上述實(shí)施例中的集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在上述計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)或多臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。

在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。

在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的客戶端,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
阜阳市| 凉山| 璧山县| 开原市| 汽车| 临沭县| 叶城县| 台前县| 广安市| 昂仁县| 银川市| 特克斯县| 长治市| 铁岭县| 康乐县| 乌恰县| 封开县| 新建县| 本溪市| 宜兰县| 巨野县| 图片| 克什克腾旗| 腾冲县| 绥棱县| 吴忠市| 南通市| 五指山市| 绥江县| 乳山市| 东平县| 句容市| 龙井市| 龙山县| 甘洛县| 巢湖市| 阳曲县| 榕江县| 盘山县| 北碚区| 沽源县|