zoukankan      html  css  js  c++  java
  • 为什么要用MongoDB副本集

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

    1. 可用性
      启用副本集,通常最少需要三个成员节点,最多可支持50个成员节点,其中最多可设置7个拥有主节点选举权的成员节点,运行时有且只有一个节点为主节点,当主节点(primary)不可用时,副本集根据预设的权值(priority)选出新的主节点。这种机制使得副本集,相对单节点应用,具有更高可用性。
    2. 安全性
      oplog(操作日志)是一个主节点存储写操作的集合(collection),所有从节点(secondary)拥有一个oplog的副本。
      副本集由主节点接收写操作指令,当主节点按照写操作指令写入数据后,会将该次操作记录到oplog,然后从节点将该次操作复制到自己的oplog副本中。副本集以此保证所有节点数据的一致性。同时也保证了数据的安全性,不会因为单个节点的问题造成数据的丢失。
    3. 读写性能提升
      默认配置下,副本集读写数据均由主节点处理。实操中,可以通过更改配置,将读操作任务分配到从节点,从而分散主节点压力,进而提升整个副本集读写性能。
    4. 实现事务
      从4.0版本开始,MongoDB开始支持副本集下的事务,也就是说,副本集是MongoDB实现事务的前提之一(4.2版本后,MongoDB开始支持分片下的事务)。
    查资料不过是偏门,撸源码才是脱离苦海的正道。
  • 相关阅读:
    qt程序编译错误:could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’
    安装 yaml-cpp,MP4V2
    安装cmake 和 opencv 4.0.0
    windows系统,boost编译安装
    messageQ 消息队列
    fflush 和 fsync 的区别
    开源一个 PDF 小工具集软件【使用 PDFium 库实现】
    封装 libjpeg 库
    纯 C++ 代码实现的 INI 文件读写类
    C++11 —— 使用 thread 实现线程池
  • 原文地址:https://www.cnblogs.com/jarvisjin/p/12575289.html
Copyright © 2011-2022 走看看