天天看點

MongoDB分布式

MongoDB 複制集架構,基于MongoDB複制,構造出的分布式資料庫解決方案:

MongoDB提供了和MySQL Cluster類似的架構,在configre server、mongos、mongo中,包含:

configure server: 提供叢集中繼資料,其中包含基本資訊,每個replica set,trunk及trunk大小等資訊

Mongs: 資料通路路由、查詢優化、資料merge、sort,裁剪等功能,請求推送等

mongo+replica set:資料存取(使用mongo協定還提供直接資料通路)

MongoDB Shard架構

<a href="http://s3.51cto.com/wyfs02/M00/89/93/wKioL1gXWzLjhQpqAAAzqkEkMEI518.png-wh_500x0-wm_3-wmp_4-s_3536422270.png" target="_blank"></a>

MongoDB在建構集合時,需要提供資料分片規則,該規則将被記錄在mongoDB中,查詢請求mongos發起請求,mongos根據存取路徑在Replica中通路資料

由于MongoDB為使用者提供了一個選擇性,将資料如何進行切片,在對使用者通路透明的情況下,快速存取資料

MongoDB面臨的問題:

以非分片規則通路資料時(索引可以建立在各個分片),将導緻所有Mongo簇節點全掃描(可以通過多份備援拷貝并進行不同的分片規則實作,這也是目前資料分片應用常用的手段)

當新增資料簇時,将導緻所有資料節點重構,直接影響性能

總結:

MongoDB使用堆存取路徑方法組織資料、不包含ACID特性對于資料大量資料更新及查詢(對于擁有MVCC的架構,将降低在高并發、大資料集的響應速度)有很大的提升,但沒有ACID保證關鍵資料的穩定、安全

本文轉自 DBAspace 51CTO部落格,原文連結:http://blog.51cto.com/dbaspace/1867873