MongoDB原理:复制集状态同步机制

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

MongoDB原理:复制集状态同步机制

张友东 2016-04-15 16:25:51 浏览2940
展开阅读全文

MongoDB复制集(3.0版本)之间通过心跳信息来同步成员的状态信息,每个节点会周期性的向复制集内其它的成员发送心跳信息来获取状态,如rs.status()看到的复制集状态信息。

一次心跳请求分3个阶段 (主动发起心跳请求的节点称为源,接受到心跳请求的成为目标)

  1. 源向目标发送心跳请求
  2. 目标处理心跳请求,并向源发送应答
  3. 源接受到心跳应答,更新目标节点状态

接下来将介绍这3个阶段里的主要状态同步逻辑

阶段1

默认配置下,复制集的节点每隔2s会向其他成员发送一次心跳请求,即发送replSetHeartbeat命令请求,心跳请求的内容类似如下(通过mongosniff抓包获取),主要包含replSetName、发送心跳的节点地址、复制集版本等。

command: replSetHeartbeat database: admin metadata: { 

网友评论

登录后评论
0/500
评论
张友东
+ 关注
所属云栖号: 阿里云数据库ApsaraDB