面试题答案
一键面试- Bully算法:
- 核心原理:假设每个节点都有唯一的ID。当一个节点发现当前领导者失效(比如一段时间内没有收到领导者的心跳信息),它会发起选举。该节点向所有ID比自己大的节点发送选举消息。如果没有收到回应(即不存在ID比自己大的存活节点),则该节点认为自己赢得选举,成为新的领导者,并向其他所有节点发送新领导者的通知。若收到ID比自己大的节点的回应,则停止选举,等待新领导者的通知。
- Raft算法:
- 核心原理:Raft将时间划分为一个个任期(term),每个任期从选举开始。在选举阶段,节点处于候选人(Candidate)状态,会向其他节点发送投票请求。节点在一个任期内只能投一票,按照先来先得原则。当候选人获得超过半数节点的选票时,就成为领导者(Leader)。领导者负责管理日志复制等工作,定期向其他节点发送心跳(heartbeat)消息以维持领导地位。如果其他节点在一段时间内没有收到心跳,就会触发新一轮选举。