【MongoDB】在window系統下搭建MongoDB的分區系統(一)

來源:互聯網
上載者:User

標籤:mongodb   資料備份   複製叢集   

這篇主要講述分區叢集的主要原理

坦白說,剛看到這個分區系統(Sharding)有點蒙,感覺有點太高大上了。看美國作家Kyle Banker《Mongodb in action》沒有明白。又查詢資料,首先對與分區的做個說明。從其他書本上看的,說分區這是一種將海量資料水平擴充的資料庫叢集系統,資料分表格儲存體在sharding的各個節點上,使用者通過簡單的配置就可以很方便地夠將一個分布式MongoDB叢集。

一、角色說明要構建一個MongoDB分區叢集,需要三個角色:

  • shard server  即儲存實際資料得分區,每個shard 可以是一個Mongod執行個體,也可以是一組mongod執行個體構成得Replica Set(也就是以前部落格裡說明的複製集)。為了實現每個shard內部的auto-failover,MongoDB官方建議每個shard 為一組Replica set。
  • Config Server  為了將一個特定的collection儲存在多個shard中,需要為該collection指定一個shard key,例如{age:1},shard key可以決定該條記錄屬於哪個chunk。(chunk將在後面做詳細介紹)Config Servers就是用來儲存所有shard節點的配置資訊,每個chunk的shard key範圍,chunk在各shard的分布情況 、該叢集中所有DB和collection的sharding 配置資訊
  • Route Process 這個一個前端路由,用戶端由此接入,然後詢問config servers需要到哪個shard上查詢或把儲存記錄,在串連相應的shard進行操作,最後講結果返回用戶端。用戶端只需要將原本發給mongod的查詢或更新要求原封不動地發給rounting processl.而不必關心所操作的記錄儲存在哪個shard上,
二、架構結構

如果用一台物理機搭建分區叢集:結構圖如下:


每個伺服器的連接埠不一樣

三、架構說明

由於該分區叢集比較抽象,我從其他資料上看到些說明,在這裡做一個補充;

A:分區是把資料庫分別在多個伺服器上

B:查詢一個使用者實際涉及兩次查詢,第一次訪問設定資料庫以獲得用使用者的分區位置,第二次查詢直接存取包含使用者資料的分區

C:主要解決說明擴容問題以及負載平衡問題

D:手動管理分區的著名架構為: Twitter的Gizzard (詳見:http://mng.bz/4qvd)

E :對現在系統的分區決定因素: 磁碟活動,系統負載以及最重要的工作集大小與可用記憶體的比例

F:chunk塊的概念:它是位於一個分區中的一段連續的分區鍵範圍。它們是種邏輯意義上的東西而不是物理意義上的。

G: 分區鍵: MongoDB的分區是基於範圍的。也就是說分區的集合中每個文檔都必須落在指定鍵的某個值範圍。分區鍵就是讓每個文檔能在這些範圍中找到自己的位置

H:拆分和遷移

這兩個是完全不同的概念,拆分思想是當分區塊資料達到一定大小時候把其分為兩塊。拆分後的兩塊都有相同數量的文檔。拆分僅僅是個邏輯操作,不會影響分區集合中裡文檔的物理順序。

遷移是由名為“balancer”均衡器軟體進行管理的,它的任務是確保資料在各個節點中保持均勻分布。通過跟蹤各分區塊的數量,就能實現該功能。通常來說,當叢集中擁有塊最多的分區與擁有塊最少的分區的塊數差大於8時,均衡器就會發生一次均衡處理。

I:建議架構圖




【MongoDB】在window系統下搭建MongoDB的分區系統(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.