为什么要用MongoDB副本集

MongoDB的副本集,相对单节点的MongoDB,提供了可用性、安全性、读写性能提升、实现事务等几大特性。

  1. 可用性
    启用副本集,通常最少需要三个成员节点,最多可支持50个成员节点,其中最多可设置7个拥有主节点选举权的成员节点,运行时有且只有一个节点为主节点,当主节点(primary)不可用时,副本集根据预设的权值(priority)选出新的主节点。这种机制使得副本集,相对单节点应用,具有更高可用性。
  2. 安全性
    oplog(操作日志)是一个主节点存储写操作的集合(collection),所有从节点(secondary)拥有一个oplog的副本。
    副本集由主节点接收写操作指令,当主节点按照写操作指令写入数据后,会将该次操作记录到oplog,然后从节点将该次操作复制到自己的oplog副本中。副本集以此保证所有节点数据的一致性。同时也保证了数据的安全性,不会因为单个节点的问题造成数据的丢失。
  3. 读写性能提升
    默认配置下,副本集读写数据均由主节点处理。实操中,可以通过更改配置,将读操作任务分配到从节点,从而分散主节点压力,进而提升整个副本集读写性能。
  4. 实现事务
    从4.0版本开始,MongoDB开始支持副本集下的事务,也就是说,副本集是MongoDB实现事务的前提之一(4.2版本后,MongoDB开始支持分片下的事务)。
posted @ 2020-03-26 16:31  土拉发子  Views(783)  Comments(0Edit  收藏  举报