5)选举超时
【用例TestCandidateResetTermMsgHeartbeat】
1)c.randomizedElectionTimeout=13
2)调用13次raft.tick()
3)tickElection里检测出pastElectionTimeout
r.electionElapsed》= 13
4)触发选举
r.Step(pb.Message{From: r.id, Type: pb.MsgHup})
【收到心跳请求时置为0】
func stepFollower
case pb.MsgHeartbeat:
r.electionElapsed = 0
【谁来调用tick】
node的run协程
(n *node) run()
case <-n.tickc:
n.rn.Tick()
【谁来给node.tickc发消息】
node->start方法里的协程

浙公网安备 33010602011771号