in store/engine/raft/node.go [225:250]
func (n *Node) watchLeaderChange() {
n.wg.Add(1)
go func() {
defer n.wg.Done()
ticker := time.NewTicker(time.Second)
defer ticker.Stop()
for {
select {
case <-n.shutdown:
return
case <-ticker.C:
lead := n.GetRaftLead()
if lead != n.leader {
n.leader = lead
select {
case <-n.shutdown:
return
case n.leaderChanged <- true:
}
n.logger.Info("Found leader changed", zap.Uint64("leader", lead))
}
}
}
}()
}