在數(shù)據(jù)中心A中,ArangoDB集群A照常運(yùn)行,不修改其代碼庫和API,并提供其正常負(fù)載。同樣,在數(shù)據(jù)中心B中,部署了第二個(gè)ArangoDB集群B,但最初處于空閑狀態(tài)。
在這兩個(gè)數(shù)據(jù)中心中,我們都部署了Kafka消息代理,這是一個(gè)標(biāo)準(zhǔn)的高性能容錯(cuò)排隊(duì)系統(tǒng),能夠在其消息隊(duì)列中緩沖大量數(shù)據(jù)。在卡夫卡中,單個(gè)隊(duì)列被稱為“主題”。這些主題可以從其他數(shù)據(jù)中心使用??ǚ蚩ㄓ幸欢ǖ谋WC,因此在網(wǎng)絡(luò)問題、個(gè)別中斷等情況下,不會(huì)丟失任何消息,遠(yuǎn)程數(shù)據(jù)中心始終保持一致狀態(tài)。
此外,在每個(gè)數(shù)據(jù)中心中,都有幾個(gè)名為“ArangoDBSyncMaster”的程序?qū)嵗T诿總€(gè)數(shù)據(jù)中心,同步主機(jī)選擇一個(gè)負(fù)責(zé)人,負(fù)責(zé)人與另一個(gè)數(shù)據(jù)中心的同步主機(jī)對(duì)話,以組織復(fù)制。“組織”在這里意味著它計(jì)劃了必須在兩個(gè)數(shù)據(jù)中心中執(zhí)行的單個(gè)任務(wù),以使復(fù)制得以進(jìn)行。從本質(zhì)上講,我們必須復(fù)制元信息,如數(shù)據(jù)庫、集合和用戶的存在,以及切分集合中的實(shí)際數(shù)據(jù)。
在每個(gè)數(shù)據(jù)中心,領(lǐng)先的SyncMaster領(lǐng)導(dǎo)一小群SyncWorker,他們執(zhí)行實(shí)際的復(fù)制任務(wù)。例如,對(duì)于集合的每個(gè)碎片,數(shù)據(jù)中心a中有一個(gè)“發(fā)送碎片”任務(wù),數(shù)據(jù)中心B中有一項(xiàng)“接收碎片”任務(wù)。所有這些碎片都由SyncMaster分配給某個(gè)SyncWorker。
這些任務(wù)負(fù)責(zé)初始增量同步階段(運(yùn)行我們?cè)贏rangoDB中已有的現(xiàn)有分片同步協(xié)議),以及稍后的更新階段,在更新階段中,對(duì)分片的所有更新都復(fù)制到其他數(shù)據(jù)中心(在數(shù)據(jù)中心A中使用WAL-tailing)。
數(shù)據(jù)流如下:它從ArangoDB集群的某個(gè)數(shù)據(jù)庫服務(wù)器開始,到達(dá)數(shù)據(jù)中心A中的一個(gè)SyncWorker,然后進(jìn)入數(shù)據(jù)中心A的Kafka。從那里,它將被數(shù)據(jù)中心B的SyncWorkers消耗,后者將其寫入數(shù)據(jù)中心B中的協(xié)調(diào)器。顯然,有一些控制消息朝相反的方向流動(dòng)。這些控制消息將由數(shù)據(jù)中心A從數(shù)據(jù)中心B中的Kafka服務(wù)器中提取。
這對(duì)管理員來說都意味著,在初始部署后,只需告訴數(shù)據(jù)中心B中的SyncMaster它應(yīng)該開始遵循數(shù)據(jù)中心A中的群集A,就可以用一個(gè)命令設(shè)置異步復(fù)制。從那時(shí)起,一切都是完全自動(dòng)的,所有數(shù)據(jù)庫、集合、用戶和權(quán)限都會(huì)自動(dòng)復(fù)制到另一個(gè)數(shù)據(jù)中心。顯然,有監(jiān)控和配置設(shè)施,但本質(zhì)上就是這樣。
局限性
這是實(shí)現(xiàn)多數(shù)據(jù)中心意識(shí)的第一步,因此自然會(huì)有局限性。首先,復(fù)制是異步的,因此它總是落后于數(shù)據(jù)中心a中的實(shí)際事件。通常情況下,由于良好的連接性和小于跨數(shù)據(jù)中心鏈路容量的寫入速率,這種延遲非常小。然而,應(yīng)該注意,在突然停止復(fù)制并手動(dòng)切換到集群B的情況下,一些最近編寫的更新可能會(huì)丟失。
整個(gè)設(shè)置是手動(dòng)配置的,在兩個(gè)數(shù)據(jù)中心之間工作。在此階段不允許寫入副本群集。然而,副本群集可以同時(shí)作為另一個(gè)數(shù)據(jù)中心的源,并且源群集可以具有多個(gè)副本。也就是說,您可以形成數(shù)據(jù)中心樹。
最后,到目前為止,關(guān)閉復(fù)制并開始使用復(fù)制副本是一種手動(dòng)操作,需要管理員做出決定和采取行動(dòng)。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9233瀏覽量
85626 -
數(shù)據(jù)中心
+關(guān)注
關(guān)注
16文章
4807瀏覽量
72210 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3823瀏覽量
64506
原文標(biāo)題:ArangoDB Enterprise—數(shù)據(jù)中心到數(shù)據(jù)中心的復(fù)制(下)
文章出處:【微信號(hào):哲想軟件,微信公眾號(hào):哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論