1.一種用于數(shù)據(jù)同步的多級(jí)架構(gòu),其特征在于,包括頂級(jí)域和多個(gè)依次連接的從級(jí)域,所述從級(jí)域中的第一級(jí)從級(jí)域與所述頂級(jí)域之間存在有數(shù)據(jù)下發(fā)鏈路,相鄰兩個(gè)所述從級(jí)域之間也存在有數(shù)據(jù)下發(fā)鏈路,待同步數(shù)據(jù)從所述頂級(jí)域向所述第一級(jí)從級(jí)域下發(fā),所述第一級(jí)從級(jí)域再將所述待同步數(shù)據(jù)下發(fā)給第二級(jí)從級(jí)域并逐級(jí)下發(fā);
每個(gè)從級(jí)域包括多個(gè)服務(wù)器,其中一個(gè)為主服務(wù)器,其他為從服務(wù)器,所述第一級(jí)從級(jí)域與頂級(jí)域之間的數(shù)據(jù)下發(fā)鏈路是設(shè)置在所述頂級(jí)域與第一級(jí)從級(jí)域的主服務(wù)器之間,其他相鄰兩個(gè)從級(jí)域之間的數(shù)據(jù)下發(fā)鏈路也是設(shè)置該兩個(gè)從級(jí)域的主服務(wù)器之間,每個(gè)從級(jí)域的主服務(wù)器與各從服務(wù)器之間分別設(shè)有數(shù)據(jù)同步鏈路,所述主服務(wù)器用于接收所述待同步數(shù)據(jù)并在其完成數(shù)據(jù)同步后將所述待同步數(shù)據(jù)轉(zhuǎn)發(fā)給該從級(jí)域內(nèi)的各個(gè)從服務(wù)器,所述從服務(wù)器接收所述待同步數(shù)據(jù)并完成數(shù)據(jù)同步。
2.一種基于權(quán)利要求1所述的多級(jí)架構(gòu)的數(shù)據(jù)同步方法,其特征在于,包括如下步驟:
頂級(jí)域?qū)⒋綌?shù)據(jù)下發(fā)到其中一個(gè)從級(jí)域;
該從級(jí)域的主服務(wù)器接收所述待同步數(shù)據(jù)并完成同步;
所述主服務(wù)器將所述待同步數(shù)據(jù)轉(zhuǎn)發(fā)給從服務(wù)器以完成所述從服務(wù)器的數(shù)據(jù)同步。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)同步方法,其特征在于,還包括如下步驟:
所述主服務(wù)器將所述待同步數(shù)據(jù)下發(fā)給下一個(gè)從級(jí)域。
4.根據(jù)權(quán)利要求2或3所述的數(shù)據(jù)同步方法,其特征在于,所述頂級(jí)域?qū)⒋綌?shù)據(jù)下發(fā)到其中一個(gè)從級(jí)域的步驟包括:
所述頂級(jí)域獲取所述待同步數(shù)據(jù);
所述頂級(jí)域?qū)⑺龃綌?shù)據(jù)發(fā)布至頂級(jí)域的下發(fā)消息隊(duì)列中;
所述從級(jí)域通過訂閱所述頂級(jí)域的下發(fā)消息隊(duì)列中的消息獲取所述待同步數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)同步方法,其特征在于,所述從級(jí)域的主服務(wù)器接收所述待同步數(shù)據(jù)并完成同步的步驟之后,還包括:
所述主服務(wù)器向該從級(jí)域的通知消息隊(duì)列發(fā)送數(shù)據(jù)同步完成消息。
6.根據(jù)權(quán)利要求4或5所述的數(shù)據(jù)同步方法,其特征在于,所述主服務(wù)器將所述待同步數(shù)據(jù)轉(zhuǎn)發(fā)給從服務(wù)器以完成所述從服務(wù)器的數(shù)據(jù)同步的步驟包括:
所述主服務(wù)器向該從級(jí)域的同步消息隊(duì)列發(fā)送所述待同步數(shù)據(jù);
所述從服務(wù)器通過訂閱該從級(jí)域的同步消息隊(duì)列獲取所述待同步數(shù)據(jù)并完成數(shù)據(jù)同步。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)同步方法,其特征在于,所述從服務(wù)器通過訂閱該從級(jí)域的同步消息隊(duì)列獲取所述待同步數(shù)據(jù)并完成數(shù)據(jù)同步的步驟之后,還包括:
所述從服務(wù)器向該從級(jí)域的同步消息隊(duì)列發(fā)送數(shù)據(jù)同步完成消息;
所述主服務(wù)器通過該從級(jí)域的同步消息隊(duì)列獲取所述從服務(wù)器發(fā)送的數(shù)據(jù)同步完成消息;
所述主服務(wù)器在獲取了該從級(jí)域的各個(gè)從服務(wù)器的數(shù)據(jù)同步完成消息后,將所述待同步數(shù)據(jù)發(fā)送到該從級(jí)域的下發(fā)消息隊(duì)列中,以供下一個(gè)從級(jí)域訂閱獲取所述待同步數(shù)據(jù)。
8.根據(jù)權(quán)利要求2-7中任一項(xiàng)所述的數(shù)據(jù)同步方法,其特征在于,每個(gè)所述從級(jí)域均對應(yīng)一個(gè)唯一標(biāo)識(shí)符,與所述待同步數(shù)據(jù)同時(shí)下發(fā)的還有待同步從級(jí)域標(biāo)識(shí)符列表;
所述頂級(jí)域?qū)⒋綌?shù)據(jù)和待同步從級(jí)域標(biāo)識(shí)符列表下發(fā)到其中一個(gè)從級(jí)域之后,還包括如下步驟:
所述從級(jí)域的主服務(wù)器判斷該從級(jí)域?qū)?yīng)的標(biāo)識(shí)符是否存在于其接收到的待同步從級(jí)域標(biāo)識(shí)符列表中;
如果否,則所述從級(jí)域的主服務(wù)器將其接收到的待同步數(shù)據(jù)和待同步從級(jí)域標(biāo)識(shí)符列表下發(fā)給下一個(gè)從級(jí)域。
9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)同步方法,其特征在于,還包括以下步驟:
如果所述從級(jí)域的主服務(wù)器判定該從級(jí)域?qū)?yīng)的標(biāo)識(shí)符存在于其接收到的待同步從級(jí)域標(biāo)識(shí)符列表中,則在該從級(jí)域完成數(shù)據(jù)同步后,刪除待同步從級(jí)域標(biāo)識(shí)符列表中該從級(jí)域?qū)?yīng)的標(biāo)識(shí)符;
所述主服務(wù)器判斷修改后的所述待同步從級(jí)域標(biāo)識(shí)符列表是否為空;
如果否,則將修改后的待同步從級(jí)域標(biāo)識(shí)符列表與所述待同步數(shù)據(jù)一起下發(fā)給下一個(gè)從級(jí)域。
10.根據(jù)權(quán)利要求2-9中任一項(xiàng)所述的數(shù)據(jù)同步方法,其特征在于,在所述頂級(jí)域?qū)⒋綌?shù)據(jù)下發(fā)到其中一個(gè)從級(jí)域的步驟之前,還包括:
所述頂級(jí)域獲取所述待同步數(shù)據(jù);
所述頂級(jí)域?yàn)樗龃綌?shù)據(jù)分配版本號(hào),所述版本號(hào)唯一且遞增。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)同步方法,其特征在于,所述從級(jí)域的主服務(wù)器接收到所述待同步數(shù)據(jù)并完成同步的步驟包括:
獲取上一次完成同步的數(shù)據(jù)版本號(hào)和當(dāng)前待同步數(shù)據(jù)版本號(hào);
判斷當(dāng)前待同步數(shù)據(jù)的版本號(hào)是否是上一次同步的數(shù)據(jù)版本號(hào)的下一個(gè);
如果否,則判斷當(dāng)前待同步數(shù)據(jù)的版本號(hào)是否大于上一次同步的數(shù)據(jù)版本號(hào);
如果是,則所述主服務(wù)器請求所述頂級(jí)域重新下發(fā)上一次同步的數(shù)據(jù)版本號(hào)的下一個(gè)版本號(hào)對應(yīng)的待同步數(shù)據(jù),并完成同步;
完成當(dāng)前所述待同步數(shù)據(jù)的同步。
12.一種基于權(quán)利要求2-11所述的數(shù)據(jù)同步方法的故障處理方法,其特征在于,包括以下步驟:
當(dāng)其中一個(gè)從級(jí)域的主服務(wù)器出現(xiàn)故障,選定該從級(jí)域內(nèi)的一個(gè)從服務(wù)器作為新主服務(wù)器;
增加所述新主服務(wù)器與上一個(gè)從級(jí)域或者頂級(jí)域之間的數(shù)據(jù)下發(fā)鏈路,以使得上一個(gè)從級(jí)域或者頂級(jí)域能夠直接將待同步數(shù)據(jù)下發(fā)到所述新主服務(wù)器;
刪除所述從級(jí)域的原主服務(wù)器與下一個(gè)從級(jí)域之間的數(shù)據(jù)下發(fā)鏈路,相應(yīng)增加所述新主服務(wù)器與下一個(gè)從級(jí)域之間的數(shù)據(jù)下發(fā)鏈路;
將原主服務(wù)器修改為從服務(wù)器;
刪除原主服務(wù)器與各個(gè)從服務(wù)器之間的數(shù)據(jù)同步鏈路,相應(yīng)增加新主服務(wù)器與各個(gè)從服務(wù)器之間的數(shù)據(jù)同步鏈路。