标题: Replica Set 选举过程 [打印本页] 作者: shengnan007 时间: 2012-9-18 12:59 标题: Replica Set 选举过程 在MongoDB中,为了提高系统的可用性(availability)和数据的安全性,每一个shard被存储多份,每个备份所在的servers,组成了一个replica set。6 X1 m) O2 H1 b9 q. b
, h% N0 ] J% D& W% Z0 \; H. t 这个replica set包括一个primary DB和多个secondary DBs。Primary DB由replica set中的所有servers,共同选举产生。当这个primaryDB server出错的时候,可以从replica set中重新选举一个新的primaryDB,从而避免了单点故障。 $ C* m8 I# y8 S ; |2 d8 B5 ~" X. Y2 z0 w: x 因此,了解replica set的运行机制,首先就要了解,在replica set中,primary是如何被选举出来的。) l" R9 A" {6 W' a
3 l. z* m. D: k 假设我们的replica set有三个节点:X,Y和Z。这三个节点每2秒会各自向其它两个节点发送一个心跳检测请求。比如X节点向Y和Z节点各发送了一个心跳检测请求,在正常情况下,Y、Z会做出回复,这个回复包含了Y和Z的自身信息,这个信息主要包括:它们现在是什么角色(primary 还是 secondary),他们是否能够成为 primary,他们当前时钟时间等等。3 b6 x. V4 a" t