# Raft Leader 选举

![center](./student-guide/diagram/03-Raft-Leader-01-03.png)
-------------------------------------------------------------
接下来，我们看一种特殊情况，就是在 election timeout 触发了选举后，有 2 个以上的节点都将自己的 term 递增，将自己变为 candidate 角色，并且投票给了自己。而他们又恰恰收到了相同数量的 follower 同意信息，这个时候怎么办呢？系统会重新发起新一轮投票，直到产生出唯一的 leader，为了避免永远不可能有 leader 被选举出来或者多次重复选举，我们可以采用一种叫做 random election timeout 的算法来降低重复的概率，这个算法可以理解为，每个节点在开始 leader 选举时，会随机设置一个区间范围内的 election timeout ，而不是采用统一的值，这样可以很高概率避免多个 candidate 票数相同的情况。 

