MongoDB-复制、分片

MongoDB的复制集提供了冗余和高可用性,主节点接收所有写操作并同步到从节点,确保数据一致性。复制集在主节点不可用时能自动选举新的主节点。分片则是通过水平扩展来应对大数据量,通过分片集群结构分布数据,包括Shard、Config Server和Query Routers。添加分片到集群可通过`sh.addShard()`方法完成。
摘要由CSDN通过智能技术生成

复制集Replication

MongoDB中的副本集是一组维护相同数据集的mongod进程。 副本集提供冗余和高可用性,是所有生产部署的基础。 MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。复制还允许您从硬件故障和服务中断中恢复数据。
副本集包含多个数据承载节点和可选的一个仲裁节点。 在承载数据的节点中,一个且仅一个成员被视为节点,而其他节点被视为次要节点。
主节点接收所有写操作。 一个副本集只能有一个主要节点,其具有{ w: "majority" }write concern ; 虽然在某些情况下,另一个mongod实例可能会暂时认为自己也是主要的。主节点记录在其上的所有操作,即oplog。
复制结构图:在这里插入图片描述

复制集主节点

在复制集中,主节点是唯一能够接收写请求的节点。MongoDB在 主节点 上进行写操作,并会将这些操作记录到主节点的 oplog 中。 从节点 会将oplog复制到其本机并将这些操作应用到其自己的数据集上。
客户端从主节点读取数据,在客户端写入数据到主节点时, 主节点与从节点进行数据交互保障数据的一致性。复制集中任何成员都可以接收读请求。但是默认情况下,应用程序会直接连接到在主节点上进行读操作。
在这里插入图片描述
次要节点复制主节点的oplog并将操作应用于其数据集,以使次要节点的数据集反映主节点的数据集。如果主要节点不可用,则符合条件的次要节点会选出新的主节点。如果主节点未与该节点的其他成员通信超过配置的electionTimeoutMillis期间(默认为10秒),则符合条件的次要节点要求选举将自己指定为新主节点。 群集尝试完成新主节点的选举并恢复正常操作。
在这里插入图片描述

复制集从节点

节点优先级为0的成员

一旦将优先级设置为0,那么该从节点将不能升级为主节点 。 优先级为0 的成员不会触发选举 。除此之外该节点与其他从节点没有区别,优先级为0 的从节点拥有与主节点一致的数据集,能接受读请求,同时也能参与投票。通过将从节点的 优先级设置为0 来防止其升职为主节点可以在分布式数据中心的结构中起到很好的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值