zoukankan      html  css  js  c++  java
  • MongoDB-Replica Set Deployment Architecture

    基础的Replica Set 由三个成员组成,提供了冗余和故障切换。根据应用需求设计Replica Set架构,尽量避免不必要的复杂化。

    Strategies

    Deploy an Odd Number of members

    奇数个成员存在确保复制集可以正确选举出主节点。如果副本集现有偶数个成员,请增加一个投票节点以保证其成员个数为奇数。投票节点由于不包含数据集,占用资源很少。所以可以将投票节点设置为某个共享机器上。

    Consider Fault Tolerance

    对于复制集,故障容错就是保证主节点在不可用的时候,剩余节点能够顺利选举出主节点。在没有主节点时,复制集将无法接受写请求。复制集的容错受到成员个数的影响:

    Number of Members Majority Required to Elect a New Primary Fault Tolerance
    3 2 1
    4 3 1
    5 3 2
    6 4 2

    为复制集增加节点不一定能够增加复制集的容错能力,但可以提供备份或报表功能。

    Use Hidden and Deployed Members for Dedicated Functions

    增加隐藏节点或延迟节点来提供特殊服务,比如备份或报表。

    Load Balance on Read-Heavy Deployments

    若业务带来大量的读请求,可以通过读写分离提升复制集的读能力。

    Add Capacity Ahead of Demand

    请保证复制集有足够的备用容量来新增节点。不要在复制集负载饱和的时候才想到新增节点来提高负载能力。

    Determine the Distribution of Members

    Distribute Members Geographically

    在其他数据中心拥有至少一个复制集节点可以很好地在主数据中心出现问题为数据提供安全性的保障。将这类节点的priority设置为0,以防止其升级为主节点。

    Keep a Majority of Members in One Location

    当复制集在多个数据中心拥有节点,且各数据中心网络隔离时,为了保证数据的复制和传输,各节点之间需要能够正常沟通。为了保证数据集节点能够保持多数且能够选举出主节点,需要保证一个数据中心拥有复制集中的多数节点。

    Target Operations with Tag Sets

    通过复制集标签来确保操作能够复制指定的数据中心。我们也能通过标签将指定的读操作发送指定的节点。

    Use Journaling to Protect Against Power Failures

    通过开启Journaling功能来在服务意外关闭或是掉电时保护数据。

    Deployment Patterns

    Three Member Replica Set

    建议复制集最少由三个节点组成。

    Replica Set with Four or More Members

    拥有4个或更多节点的复制集可以为操作提供更多的分布结构,且可以将某些节点用于专用功能。

    Geographically Distributed Replica Sets

    通过将复制集成员分布在多个数据中心此类的地理分布的方式可以很好防止不可抗拒的力量造成的数据破坏。

  • 相关阅读:
    delphi内存管理
    Dbgrid导出为word
    indy传输文件
    TMethod
    http状态码详解
    如何严格设置php中session过期时间
    http和https的优缺点,区别与工作原理
    session的生命周期
    Mysql分库分表方案,如何分,怎样分?
    【观点】程序员应知——循序渐进 狼人:
  • 原文地址:https://www.cnblogs.com/hotbaby/p/4877756.html
Copyright © 2011-2022 走看看