MongoDB多數(shù)據(jù)中心部署方案(四)

(草稿)

目錄

第四章 MongoDB數(shù)據(jù)中心的Awareness

MongoDB提供了豐富的功能幫助部署高可用性和擴(kuò)展性系統(tǒng)。在設(shè)計(jì)高可用性時(shí),管理員必須在不同故障場(chǎng)景的上下文中評(píng)估讀寫操作。系統(tǒng)的性能和可用性SLAs(服務(wù)級(jí)別協(xié)議)在判定中發(fā)揮重要的作用:

1.數(shù)據(jù)庫(kù)如何分片(分片策略在后面討論)

2.數(shù)據(jù)的復(fù)制數(shù)(副本數(shù))

3.在內(nèi)部和多個(gè)數(shù)據(jù)中心之間的shards和復(fù)制集的物理位置

管理員能夠配置MongoDB的shards和復(fù)制集的行為來使用數(shù)據(jù)中心awareness。配置可以基于不同的維度,包括跨區(qū)域的多數(shù)據(jù)中心部署的awareness,又或者是單個(gè)數(shù)據(jù)中心的機(jī)架,網(wǎng)絡(luò)和電源電路。 。

使用MongoDB,管理員能:

1.確保寫操作傳至一個(gè)復(fù)制集的特定成員,在本地和遠(yuǎn)端數(shù)據(jù)中心部署。在數(shù)據(jù)中心完全宕機(jī)的情況下能夠降低數(shù)據(jù)丟失的風(fēng)險(xiǎn)?;蛘吲渲脧?fù)制集確保數(shù)據(jù)僅復(fù)制到特定地域的節(jié)點(diǎn),以確保數(shù)據(jù)永遠(yuǎn)不會(huì)離開這個(gè)國(guó)家。

2.確保一個(gè)復(fù)制集的特定成員響應(yīng)查詢。例如,基于它的位置。這減少了地域時(shí)間的影響。

3.將特定數(shù)據(jù)放置于特定shards上,每個(gè)都可以部署在不同的數(shù)據(jù)中心。這能再一次用于減少地域延時(shí)和保持?jǐn)?shù)據(jù)獨(dú)立。

能對(duì)每個(gè)操作和每個(gè)集合的讀寫行為進(jìn)行配置?;诰唧w應(yīng)用需求它們一起使用戶精確控制和擴(kuò)展跨區(qū)域的數(shù)據(jù)庫(kù)操作。

跨數(shù)據(jù)中心配置寫操作

MongoDB允許用戶使用名為write con·cern的選項(xiàng)指定寫入可用性系統(tǒng),每個(gè)操作能夠指定合適的write concern,歸類于從未確認(rèn)到確認(rèn)這些寫操作致力于:

1.單復(fù)制(即主復(fù)制集成員)。這是一個(gè)默認(rèn)write concern;

2.多個(gè)復(fù)制集;

3.大部分的復(fù)制集;

4.所有復(fù)制集;

也可以配置write concern,在具體條件滿足后才確認(rèn)寫操作。諸如在一個(gè)數(shù)據(jù)中心至少寫入兩個(gè)復(fù)制集成員以及在第二個(gè)數(shù)據(jù)中心寫入至少一個(gè)副本。如果是shards MongoDB集群,此選項(xiàng)使用戶能并行寫入多個(gè)數(shù)據(jù)中心。

跨數(shù)據(jù)中心配置Location-Aware讀取

無論在何處為用戶提供低延遲體驗(yàn)都是分布式系統(tǒng)關(guān)鍵的設(shè)計(jì)點(diǎn)。使用MongoDB的本地復(fù)制集,可以將數(shù)據(jù)庫(kù)的備份(復(fù)制集)部署到更接近用戶的地方,從而減少網(wǎng)絡(luò)延遲的影響。

MongoDB讀性能配置MongoDB客戶端如何將讀操作路由到復(fù)制集成員。默認(rèn)是一個(gè)應(yīng)用程序通過將所有讀操作指向復(fù)制集中的主成員來確保強(qiáng)一致性,但可以在每個(gè)操作的基礎(chǔ)上在驅(qū)動(dòng)中控制操作行為。nearest讀操作允許客戶端從復(fù)制集最低延遲成員中讀取而不是宗師讀取主成員。這通常用于將查詢路由到本地?cái)?shù)據(jù)中心,以減少地域延遲的影響。也能夠使用標(biāo)簽來確保讀取總是路由到指定節(jié)點(diǎn)或節(jié)點(diǎn)的子集上。

跨數(shù)據(jù)中心配置Shards

如前所述,分片用于水平擴(kuò)展一個(gè)跨多個(gè)節(jié)點(diǎn)的MongoDB。為了最大靈活性,MongoDB支持三種可由用戶定義的分片策略,根據(jù)應(yīng)用程序查詢模式和部署需求進(jìn)行優(yōu)化伸縮:

基于范圍分片

通過Shard鍵值對(duì)文檔進(jìn)行分片。分片鍵值相近的文檔可能位于同一個(gè)分片上。這種方法非常適合需要優(yōu)化基于范圍的查詢的應(yīng)用程序,例如為給定用戶的客戶檢索所有數(shù)據(jù),或在諸如時(shí)間序列數(shù)據(jù)的范圍內(nèi)訪問的數(shù)據(jù)。

基于哈希分片

使用一個(gè)MD5哈希的shard鍵值統(tǒng)一分發(fā)文檔。具有“關(guān)閉”的分片鍵值的文檔不太可能位于同一個(gè)分片上。這種方法可保證在分片之間均勻分配寫入數(shù)據(jù),但對(duì)于查詢文檔組的應(yīng)用程序來說,這種方法不太適合。

表1:各城市間的網(wǎng)絡(luò)延遲(毫秒)

區(qū)分片

為DBA和運(yùn)維團(tuán)隊(duì)定義在一個(gè)分片集群里管理數(shù)據(jù)放置的具體規(guī)則的能力。區(qū)適合一系列部署場(chǎng)景。例如通過地理位置定位數(shù)據(jù),通過分層存儲(chǔ)架構(gòu)的硬件配置,或通過應(yīng)用程序功能。管理員能夠通過修改分片鍵范圍持續(xù)改進(jìn)數(shù)據(jù)放置規(guī)則,MongoDB將自動(dòng)將數(shù)據(jù)遷移到新的區(qū)域。了解更多信息,請(qǐng)參閱區(qū)域文檔

下一章 MongoDB部署模式

本文譯者:吳錦晟 R&D Director@MFG

原文鏈接:http://www.itdecent.cn/p/bc010efd41cc

版權(quán)歸譯者所有,轉(zhuǎn)載請(qǐng)注明出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • (草稿) 目錄 第五章 MongoDB部署模式 下圖顯示MongoDB中的數(shù)據(jù)中心awareness如何為地域和全...
    Tommy_MFG閱讀 2,806評(píng)論 0 4
  • NoSql數(shù)據(jù)庫(kù)優(yōu)缺點(diǎn) 在優(yōu)勢(shì)方面主要體現(xiàn)在下面幾點(diǎn): 簡(jiǎn)單的擴(kuò)展 快速的讀寫 低廉的成本 靈活的數(shù)據(jù)模型 在不足...
    dreamer_lk閱讀 2,877評(píng)論 0 6
  • MongoDB在58同城的應(yīng)用實(shí)踐 58同城作為中國(guó)最大的生活服務(wù)平臺(tái),涵蓋了房產(chǎn)、招聘、二手、二手車、黃頁等核心...
    meng_philip123閱讀 3,695評(píng)論 4 49
  • 其實(shí)是要寫10號(hào)的事情。但是十號(hào)太忙了。 上午特別困打算第一節(jié)課翹了,去上二三四節(jié)。結(jié)果一覺睡到十一點(diǎn)。什么課也不...
    BadNight閱讀 206評(píng)論 0 0
  • 看完這部書,心里是五味雜陳。細(xì)細(xì)品味之下。也許,是悲哀更多一些。是什么,可以讓人如此仇恨,眼里的世界,什么婦孺老幼...
    飛羽竹芋閱讀 1,110評(píng)論 4 6

友情鏈接更多精彩內(nèi)容