MongoDB 複製集和分片的理解

對mongo副本集和分片的理解

mongo的副本集:
mongo的副本集是相對於單個mongod服務器或者進程來說的,由多個mongod進程/節點(一般爲奇數)組成;
每個節點上都有一份完整的數據備份(通過“熱備份”的方式實現),可以實現讀寫的分離(同一時間僅有一個寫入的入口);
相對於傳統的主備形式,rs的優點實現故障時的自動切換。

mongo的分片:
mongo的分片底層是由多個片節點(shard server)構成,將collection中的數據自動的分解爲多個塊(chunk)平均分配到各個shard上去;
mongo的分片可以在一個mongod上進行,也可以在rs上進行,在rs上每個分片是一組shard構成的複製集;
頂層通過前端路由和配置服務器(所有shard 節點的配置信息、每個chunk 的shard key 範圍、chunk 在各shard 的分佈情況、該集羣中所有DB 和collection 的sharding 配置信息)的配合,客戶端只需要將原來發給mongod的查詢,原封不動的發給路由;
當前存儲不足的時候,可以通過添加片節點的方式,分擔初始節點的壓力;
分片可以實現數據的水平拓展和分佈計算。

 

mongo的複製集+分片,可以理解爲,分片負責水平拓展,副本集負責片節點(如果有分片)安全/讀寫分離。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章