zhangyixin1222 commented on issue #2056: URL: https://github.com/apache/rocketmq/issues/2056#issuecomment-636604891
> > candidator进入follower状态是为了感知到自己日志滞后之后临时不参与leader当选把机会让给强者 > > 即使只有一个candidate X,该candidate仍然有可能感受到日志滞后,但这并不影响该candidate具有唯一最大的term值,它仍然应该成为leader。 如果其成为leader后,即使它的日志比部分节点落后,这也是安全的。因为比leader X 日志更新的节点一定是少数派,否则X 就不可能成为leader。如果leader X 只是感知到它的日志比少部分节点落后,那么它就可以安全的overwrite掉那些比它更新的日志记录。 > > 决定candidate 之间 强弱顺序的只有term (也就是你定义的termWanted ) 决定。 这种思路存在以下这个问题,结点1获得候选人并发起term=7投票,然后因为略慢了一拍,更快的机器上的候选人结点7用更旧的term=6发起投票并获得leader地位且发起新一轮leader责权履行。引入反对票是针对这系列情况,即一旦感知到自己存在日志纪录term不为最新导致不能百分百当选就迅速退避。一旦当选就尽快履责,一旦当选无望就迅速退避。 ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
