zoukankan      html  css  js  c++  java
  • mongodb添加延时节点

    1.      简介

       延时节点是主节点过去某个时间点的“数据快照”,通常用来做数据备份,如果主节点有误操作而删除了数据,可以通过延时节点来恢复数据。例如,当前时间是10:00,并且延时节点设置1个小时的延时同步,那么该节点不会同步1个小时内主节点上的操作。

    2.      基本要求

    2.1.        优先级

    优先级必须设置为0,防止延时节点被选为主节点。

    2.2.        隐藏节点

    应该把延时节点设置为隐藏节点,这样客户端在做从服务器读操作时,请求不会被分发到延时节点。

    2.3.        可以选举投票

    在发生选举时,该节点可以投票。

    2.4.        延时时长

    延时节点通过延时从opLog同步数据来实现,因此延时时长的设置需要考虑两个因素:

    1. 不小于维护时间窗口
    2. 比opLog的容量要小一些,不然会不能同步而进入stale状态

    3.      延时节点设置

    下面举一个例子来说明如果设置延时节点。假定目前有一个包含5个节点的复制组:1个主节点、3个普通从节点、1个延时节点。延时节点的延时时长设置为3600s,并且它是一个优先级为0的隐藏节点,如下图所示:

     

    连接到复制组的主节点,然后配置:

    >cfg = rs.conf()

    cfg.members[1].priority = 0

    cfg.members[1].hidden = true

    cfg.members[1].slaveDelay = 3600

    >rs.reconfig(cfg)

    4.      注意事项

    rs.reconfig()命令执行后,会强制当前的主节点下线,然后进行新的主节点选择。主节点下线时,会关闭所有客户端的连接,这个过程会持续10-20s,因此该操作应该在维护时间执行,减少对系统的影响。

  • 相关阅读:
    组合数计算
    使用叉积判断两条直线是否相交
    关于括号的简单模拟题
    链表
    长句拆单词
    第九章 SpringCloud之Zuul路由
    第八章 SpringCloud之Feign、Hystrix结合使用
    第七章 SpringCloud之非声明式RestClient:Feign
    第六章 SpringCloud之Ribbon负载均衡
    第五章 SpringCloud之Eureka-Client使用RestTemplate实现服务之间的调用
  • 原文地址:https://www.cnblogs.com/xinghebuluo/p/6025610.html
Copyright © 2011-2022 走看看