• 转 Warning:MongoDB Replica Sets配置注意事项


    我们知道,MongoDB不提供单机的数据安全性,取而代之的是提供了Replica Sets的高可用方案。官方文档中提到的案例是三个节点组成的Replica Sets,这样在其中任何一个节点宕机后都会自动选举出新的Primary提供写操作。而下面要提到的是一个大家可能忽略的问题。

    配置方法

    两个节点的Replica Sets,启动后一个选举成为Primary,一个成为Secondary。

    问题

    这时候如果Secondary宕机,那么Primary会怎么样呢?Primary会立刻变成Secondary!这时候集群里没有Primary了!为什么会出现这样的情况呢。

    原因

    这是和MongoDB的Primary选举策略有关的,试想如果情况不是Secondary宕机,而是网络断开,那么两个节点都会选取自己为Primary,因为他们能连接上的只有自己这一个节点。而这样的情况在网络恢复后就需要处理复杂的一致性问题。而且断开的时间越长,时间越复杂。所以MongoDB选择的策略是如果集群中只有自己一个节点,那么不选取自己为Primary。

    解决方法

    所以正确的做法应该是添加两个以上的节点,或者添加arbiter,当然最好也最方便的做法是添加arbiter,aribiter节点只参与选举,几乎不会有压力,所以你可以在各种闲置机器上启动arbiter节点,这不仅会避免上面说到的无法选举Primary的情况,更会让选取更快速的进行。(因为如果是三台数据节点,一个节点宕机,另外两个节点很可能会各自选举自己为Primary,从而导致很长时间才能得出选举结果)

  • 相关阅读:
    Ogre的骨骼动画
    ID卡读取方法(用于区分ID卡读取出来的数据和一般人手录入的数据)
    FastSpring学习笔记一
    数学 方程的解
    单调栈+桶+分治 奇袭
    神奇DP [HNOI2004] 打砖块
    DFS 找硬币
    树DP 树上染色
    android 适配器Adpter的使用总结 之 BaseExpandableListAdapter
    Java删除文件夹以及文件夹下的子目录与文件
  • 原文地址:https://www.cnblogs.com/sidesky/p/3235049.html
Copyright © 2020-2023  润新知