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的复制集+分片,可以理解为,分片负责水平拓展,副本集负责片节点(如果有分片)安全/读写分离。

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