国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

怎么用Kafka 實(shí)現(xiàn)數(shù)據(jù)中心到數(shù)據(jù)中心的復(fù)制?

kyanag / 2593人閱讀

摘要:使用,可以設(shè)置一個(gè)名為的系統(tǒng),將一組可配置的主題從一個(gè)數(shù)據(jù)中心轉(zhuǎn)發(fā)到另一個(gè)數(shù)據(jù)中心。此外,在每個(gè)數(shù)據(jù)中心中有一些名為的程序?qū)嵗T诿總€(gè)數(shù)據(jù)中心中,選擇一個(gè)領(lǐng)導(dǎo)者,與其他數(shù)據(jù)中心的進(jìn)行交流,以組織復(fù)制。

摘要: 每個(gè)公司都需要為所有重要系統(tǒng)制定災(zāi)難恢復(fù)計(jì)劃。從單個(gè)進(jìn)程到最大的分布式體系結(jié)構(gòu)的小單元都是這樣。特別是對(duì)于數(shù)據(jù)庫(kù),這通常涉及容錯(cuò),冗余,定期備份和應(yīng)急計(jì)劃的混合。數(shù)據(jù)庫(kù)越大,制定好策略就越困難。 這篇文章概述了ArangoDB向多數(shù)據(jù)中心支持的第一個(gè)進(jìn)化步驟--數(shù)據(jù)中心到數(shù)據(jù)中心的異步復(fù)制。

它能做什么?

此功能允許您在兩個(gè)不同的數(shù)據(jù)中心A和B中運(yùn)行兩個(gè)ArangoDB 群集,并設(shè)置從A到B的異步復(fù)制。這意味著數(shù)據(jù)中心A中的群集A可以照常用于讀取和寫入操作以及所有更改數(shù)據(jù)通過(guò)網(wǎng)絡(luò)復(fù)制到數(shù)據(jù)中心B中的另一個(gè)集群B。復(fù)制是異步的,也就是說(shuō),更改出現(xiàn)在短暫的延遲之后,通常在幾秒鐘內(nèi)。(閱讀更多關(guān)于ArangoDB集群架構(gòu))

在數(shù)據(jù)中心A發(fā)生災(zāi)難的情況下,如網(wǎng)絡(luò)連接完全丟失,可以快速停止復(fù)制,并開(kāi)始使用數(shù)據(jù)中心B中的群集B作為群集A的替代品。之后,當(dāng)災(zāi)難結(jié)束時(shí),可以或者使用集群A作為群集B的異步副本,或者切換回A并繼續(xù)復(fù)制到群集A。

挑戰(zhàn) ?

單個(gè)ArangoDB集群是具有良好的水平可擴(kuò)展性的分布式系統(tǒng)。數(shù)據(jù)容量和查詢性能(讀寫)都與使用的服務(wù)器數(shù)量呈線性關(guān)系。自動(dòng)分片導(dǎo)致數(shù)據(jù)的實(shí)際更改同時(shí)發(fā)生在所有服務(wù)器的整個(gè)地方。特別是,這意味著設(shè)計(jì) - 沒(méi)有一個(gè)地方確定所有更改的總順序。也就是說(shuō),我們正在處理同時(shí)發(fā)生大量數(shù)據(jù)更新的分布式混亂。變化率可能會(huì)有很大差異,我們必須處理大量的寫入突發(fā)。

同時(shí),ArangoDB集群是容錯(cuò)的。例如,如果數(shù)據(jù)中心中的單個(gè)服務(wù)器出現(xiàn)故障,則ArangoDB群集可以容易地容忍這種損失,并假定用戶將復(fù)制因子設(shè)置為至少為2 - 既沒(méi)有丟失任何數(shù)據(jù),也沒(méi)有丟失可用性。系統(tǒng)簡(jiǎn)單地切換到使用另一臺(tái)服務(wù)器,重新分配數(shù)據(jù)并移動(dòng),而不影響查詢性能。因此,任何正確的復(fù)制解決方案都必須滿足群集A中的這些透明故障切換。

另一方面,安全問(wèn)題和防火墻維護(hù)意味著我們不能輕易地在許多不同的進(jìn)程與其他數(shù)據(jù)中心中的許多不同進(jìn)程進(jìn)行交談,但同樣,我們也不能輕易地通過(guò)兩個(gè)進(jìn)程之間的單個(gè)網(wǎng)絡(luò)連接的瓶頸來(lái)移動(dòng)所有更新在不同的數(shù)據(jù)中心。

顯然,整個(gè)復(fù)制系統(tǒng)是分布式系統(tǒng)的分布式系統(tǒng),因此必須具有可擴(kuò)展性和容錯(cuò)性,而無(wú)需單點(diǎn)故障。

所有這些挑戰(zhàn)決定了我們的解決方案的設(shè)計(jì)。

怎么運(yùn)行 ?

在數(shù)據(jù)中心A中,ArangoDB集群A像往常一樣運(yùn)行,不對(duì)其代碼庫(kù)和API進(jìn)行任何修改,并提供其通常的負(fù)載。同樣,在數(shù)據(jù)中心B中,部署了第二個(gè)ArangoDB群集B,但最初空閑。

在兩個(gè)數(shù)據(jù)中心中,我們部署了一個(gè)Kafka 消息代理,它是一種標(biāo)準(zhǔn)的高性能和容錯(cuò)排隊(duì)系統(tǒng),能夠緩沖其消息隊(duì)列中的大量數(shù)據(jù)。個(gè)人隊(duì)列在卡夫卡被稱為“主題”。使用Kafka,可以設(shè)置一個(gè)名為“MirrorMaker”的系統(tǒng),將一組可配置的Kafka 主題從一個(gè)數(shù)據(jù)中心轉(zhuǎn)發(fā)到另一個(gè)數(shù)據(jù)中心。寫入其中一個(gè)主題的所有內(nèi)容最終出現(xiàn)在另一個(gè)數(shù)據(jù)中心的Kafka 中的相應(yīng)主題中。這是我們?cè)跀?shù)據(jù)中心之間移動(dòng)消息和數(shù)據(jù)的主要手段。

此外,在每個(gè)數(shù)據(jù)中心中有一些名為“ArangoDB SyncMaster”的程序?qū)嵗T诿總€(gè)數(shù)據(jù)中心中,SyncMasters選擇一個(gè)領(lǐng)導(dǎo)者,與其他數(shù)據(jù)中心的SyncMaster進(jìn)行交流,以組織復(fù)制。 “組織”在這里表示,它計(jì)劃必須在兩個(gè)數(shù)據(jù)中心執(zhí)行的各個(gè)任務(wù)才能進(jìn)行復(fù)制。實(shí)質(zhì)上,必須復(fù)制數(shù)據(jù)庫(kù),集合和用戶所在的元信息以及分片集合中的實(shí)際數(shù)據(jù)。

在每個(gè)數(shù)據(jù)中心,領(lǐng)先的SyncMaster指揮執(zhí)行實(shí)際復(fù)制任務(wù)的一小部分SyncWorkers。例如,對(duì)于集合的每個(gè)分片,數(shù)據(jù)中心A中都有“發(fā)送分片”任務(wù)以及數(shù)據(jù)中心B中的“接收分頁(yè)”任務(wù),并且所有這些分片由SyncMaster分配給某些SyncWorker。

這些任務(wù)負(fù)責(zé)初始增量同步階段(運(yùn)行ArangoDB中已有的現(xiàn)有分片同步協(xié)議)以及后期更新階段,其中分片的所有更新都會(huì)在其他數(shù)據(jù)中心中復(fù)制(使用WAL拖尾數(shù)據(jù)中心A)。

數(shù)據(jù)流如下:它從ArangoDB集群的一些DBserver開(kāi)始,轉(zhuǎn)到Datacenter A中的一個(gè)SyncWorkers,然后進(jìn)入Datacenter A中的Kafka。從那里,MirrorMaker將其移動(dòng)到Datacenter B,在那里它被一些SyncWorker并最終寫入數(shù)據(jù)中心B的協(xié)調(diào)器。顯然,有一些控制消息在相反的方向流動(dòng),但是它們也使用兩個(gè)Kafkas和MirrorMaker傳輸。

這對(duì)管理員來(lái)說(shuō),這意味著在初始部署之后,可以通過(guò)一個(gè)命令設(shè)置異步復(fù)制,只需告訴Datacenter B中的SyncMaster應(yīng)該開(kāi)始跟蹤數(shù)據(jù)中心A中的集群A.所有從此開(kāi)始的都是全自動(dòng)的,所有數(shù)據(jù)庫(kù),集合,用戶和權(quán)限都將自動(dòng)復(fù)制到其他數(shù)據(jù)中心。顯然,有監(jiān)控和配置設(shè)施,但基本上是這樣的。

限制 ?

這是邁向多數(shù)據(jù)中心意識(shí)的第一步,因此自然會(huì)帶來(lái)局限性。首先,復(fù)制是異步的,所以它總是落后于Datacenter A 中的實(shí)際事件。通常,連接性好,寫入速度小于跨數(shù)據(jù)中心鏈路的容量,這種延遲非常小。然而,應(yīng)該意識(shí)到,在突然停止復(fù)制和手動(dòng)切換到群集B的情況下,最近可能會(huì)寫入的更新可能會(huì)丟失。整個(gè)設(shè)置是手動(dòng)配置的,并且在兩個(gè)數(shù)據(jù)中心之間工作。在此階段不允許寫入復(fù)制集群。然而,復(fù)制集群可以同時(shí)成為另一個(gè)數(shù)據(jù)中心的源,源集群可以有多個(gè)副本。也就是說(shuō),您可以形成數(shù)據(jù)中心的樹(shù)。最后,關(guān)閉復(fù)制并開(kāi)始使用副本仍舊需要管理員手動(dòng)做出操作。

如何設(shè)置 ?

到目前為止,我們有一般的安裝說(shuō)明,以及RedHat Enterprise 7 和Centos 7 的具體部署說(shuō)明和腳本(請(qǐng)參閱此處,包括README.me和說(shuō)明)。請(qǐng)注意,此功能僅包含在ArangoDB Enterprise 版本中,并且我們發(fā)布的RPM包包含所有必需的部分。

下載即將到來(lái)的ArangoDB 3.3 的里程碑版。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/40970.html

相關(guān)文章

  • 怎么Kafka 實(shí)現(xiàn)數(shù)據(jù)中心數(shù)據(jù)中心復(fù)制

    摘要:使用,可以設(shè)置一個(gè)名為的系統(tǒng),將一組可配置的主題從一個(gè)數(shù)據(jù)中心轉(zhuǎn)發(fā)到另一個(gè)數(shù)據(jù)中心。此外,在每個(gè)數(shù)據(jù)中心中有一些名為的程序?qū)嵗T诿總€(gè)數(shù)據(jù)中心中,選擇一個(gè)領(lǐng)導(dǎo)者,與其他數(shù)據(jù)中心的進(jìn)行交流,以組織復(fù)制。 摘要: 每個(gè)公司都需要為所有重要系統(tǒng)制定災(zāi)難恢復(fù)計(jì)劃。從單個(gè)進(jìn)程到最大的分布式體系結(jié)構(gòu)的小單元都是這樣。特別是對(duì)于數(shù)據(jù)庫(kù),這通常涉及容錯(cuò),冗余,定期備份和應(yīng)急計(jì)劃的混合。數(shù)據(jù)庫(kù)越大,制定...

    hearaway 評(píng)論0 收藏0
  • 2018年第17周-RabbitMQ模式與Kafka設(shè)計(jì)

    摘要:所以消息可以重復(fù)的放入不同的隊(duì)列中。而是對(duì)于消息來(lái)說(shuō)的,在其發(fā)送消息到交換器時(shí),需指定。與發(fā)布訂閱模式的相同點(diǎn)是可以將消息重復(fù)發(fā)送。它需要處理低延遲的傳遞,用于支持傳統(tǒng)的消息傳遞系統(tǒng)用例。 理解概念的一個(gè)方法 之前說(shuō)過(guò)學(xué)習(xí)一個(gè)新的東西,最核心的就是掌握概念。而如何掌握概念呢?我的其中一個(gè)方法就是對(duì)比,把相似且模糊不清的兩個(gè)概念進(jìn)行對(duì)比,這樣就理解更快。 RabbitMQ模式 Rabbi...

    lidashuang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<