cj4KICAgYy7Iu7rzQtTZttRBtPK/qtK7uPbQwrXEway906OssqLH0rbUQcu1o7rV4rj2way908Tjvs21sbPJysdDtcSwyaOs0rLL49K7uPa8xsr91Np3wO+hozxicj4KICAgZC7V4sqxuvLU2kG/tMC0o6y+zdPQwb249sGsvdPBrLW9y/vJz8Pmo6zSu7j2ysdCo6zSu7j2ysfQ6cTitcRDo6zV4sG9uPbBrL3TtrzE3LGouObL+8u1zeqzycHLzayyvbLZ1/ehozxicj4KPHA+CiAgICAgICAgtbHSu7j20LSy2df31NpByc/WtNDQuvOjrELK18/IzayyvbW91eK49rLZ1/e1xG9wbG9no6zWtNDQzeq687vhuObL30GjrM7S1rTQ0M3qwcuho8i7uvNDzazR+bTTQsnPu/HIobW9QrXEb3Bsb2ejrNKy1rTQ0MHL1eLSu8z10LSy2df3o6zIu7rzy/u45svfQqOsztLWtNDQzerBy6OsQtTaytW1vdXiuPbP7NOmuvOjrLvhzai5/bjVssW/qs2otcTQ6cTizai1wLj6Qcu1o6zO0srH0OnE4rXEQ73ateOjrM7S0rLN6rPJ0LSy2df3wcuho9XiyrG68kG+zdaqtcCjrEGhokKhokPI/bj2vdq147a8zeqzydC0stnX98HLoaN3o7oztcTM9bz+wvrX46OsyLu687e1u9i4+LX308NnZXRMYXN0RXJyb3K1xL/Nu6e2y6OszeqzydXitM6y2df3oaM8L3A+CjxwPgq+38zlyP249r3ateO85LXEway908jnz8LNvKO6PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">C B A <====> <====> <---->
B和A之间有两条通道,双线那条是真正的同步连接,单线那条是一个虚拟连接。
注意:MongoDB这种链式同步结构类似于Hadoop中HDFS中数据块的流式复制,这样的好处是可以大大减轻主节点的压力,提高数据同步的速度。
三 新功能展望
上面就是当前的Replica Sets同步的内部实现,在后续这一块MongoDB还会进行一些新特性的开发。在2.2版本中,会提供replSetSyncFrom命令,让用户可以手动设置一个secondary的同步源。使用方法大概是这样:
> db.adminCommand({replSetSyncFrom:"otherHost:27017"})