Dawn's Blogs

分享技术 记录成长

0%

MongoDB学习 (3) 复制和分片

复制

复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。

MongoDB 的数据复制至少需要两个节点,一个主节点,其余的节点为从节点(称为副本集)。主节点记录在其上的所有操作 oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

MongoDB复制结构图

在 MongoDB 中,副本集中所有的写操作都在主节点上进行,任何一个节点都可以称为主节点,并且可以自动故障转移自动恢复

分片

在 MongoDB 中也可以进行分片,分片可以提高数据的吞吐量。一个分片集群结构如下,包含三个部分:

  • Shard:用于存储实际的数据块,实际生产环境中一个 shard server 角色可由几台机器组成个一个 replica set 承担,防止主机单点故障。
  • Config Server:MongoDB服务器实例,存储了整个集群的元信息。
  • Query Routers:客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。

img