MongoDB-Replication Secondary Members

Priority 0 Replica Set Members

一旦将优先级设置为0,那么从节点将不能升级为主节点。优先级为0的成员不会触发选举,除此之外,该节点与其他从节点没有区别,优先级为0的节点拥有和主节点一样的数据集,能接收读请求,同时参与投票。通过将从节点的优先级设置为0,来防止其升级为主节点可以在分布式数据中心的结构中起到很好的作用。

只有三个成员的数据集中,主节点和从节点坐落于一个数据中心,另一个优先级为0的从节点则在另外一个数据中心:

image

 

Primary 0 Members as Standbys

在一些硬件环境或是架构地理分布较为多变的情境中,一个优先级为0的备用节点可以很好的保证符合条件的节点升级为主节点。

Primary 0 Members and Failover

当配置一个优先级为0的节点时,需要考虑可能出现的故障切换情况,比如网路故障等。

Hidden Replica Set Members

隐藏节点拥有和主节点一样的数据集,对于应用程序是不可见的。隐藏节点可以和Replica Set中的其他节点隔离,并应对特殊需求。隐藏节点是一个优先级为0的节点。函数db.isMater()将不会隐藏节点。隐藏节点在选举中是可以投票的。

image

Behavior

Read Operations

客户端将不会将读请求分发到隐藏节点。隐藏节点可以用于报表节点或备份节点。延迟节点也应该是一个隐藏节点。

分片集群中,mongos将不与隐藏节点进行交流。

Voting

隐藏节点是参与投票的。当关闭一个隐藏节点时,请确认Replica Set中节点个数足够进行选举,以防主节点降级导致Replica Set对外不可用。

Delay Replica Set Members

延迟节点也会从Replica Set主节点复制数据,然而延迟节点的数据集会比主节点的数据延迟一定时间。由于延迟节点数据集是延迟的,因此可以帮助我们在人为误操作或是其他意外情况下恢复数据。

Considerations

Requirements

  • Must be Priority 0 members. Prevent delayed member from becoming primary member.
  • Should be hidden members. Prevent application from seeing or querying delayed members.
  • Voting.

 

Behavior

延迟节点通过延迟应用oplog的中操作来达到延迟效果,因此选择延迟考虑如下情况:

  • 必须大于或等于维护视窗。
  • 必须小于oplog的存储能力。

 

Sharding

在分片集群中,当平衡器打开的时候,延迟节点效果有限。因为延迟节点延迟的复制数据段,而若在延迟的时间段进行数据迁移的话,Replica Set中延迟节点就无法为还原分片集群提供有效的帮助。

Example

image

Configuration

延迟节点将priority设为0,hidden设置true,同时将slaveDelay设为想要延迟的时间:

posted @ 2015-10-13 11:05  hotbaby  阅读(265)  评论(0编辑  收藏  举报