加载中...
领导者选举是分布式系统中在一组节点里推选出唯一协调者(领导者)的模式。领导者负责统筹全局任务、避免多个节点同时执行导致的冲突;当领导者失效时,其余节点会重新发起选举产生新领导者,以保证系统持续可用。

| 类型 | 分布式协调模式 |
| 核心目标 | 选出唯一协调者 |
| 关键机制 | 心跳、租约、共识 |
| 常见风险 | 脑裂 |
| 典型工具 | ZooKeeper、etcd、Raft |
领导者选举(Leader Election)是一种分布式系统协调模式,用于在多个对等节点中动态确定唯一的领导者,由它承担需要单点决策或统一协调的职责,而其余节点作为追随者。当领导者宕机时,集群能自动重新选举,保证高可用。
在分布式系统里,某些工作必须由唯一实例执行,例如定时任务调度、分片再平衡、写入协调等。如果每个节点都执行,会产生重复操作或数据冲突;若固定指定一个节点,则该节点故障后任务停摆。领导者选举通过一套约定的算法在运行时选出协调者,并在其失效时自动切换,兼顾了唯一性与容错性。
领导者选举是许多分布式基础设施的核心。Raft 协议内置领导者选举用于日志复制;ZooKeeper、etcd、Consul 等协调服务常被用作实现选举的外部依赖,应用只需借助它们的临时节点、租约或分布式锁即可选出主节点。Kubernetes 的控制器也依赖它保证同一时刻只有一个活跃实例。
问:会不会同时出现两个领导者?答:这称为脑裂,通常由网络分区引发。通过多数派(Quorum)确认和租约机制,可确保只有掌握多数投票或有效租约的一方才是合法领导者,从而避免双主写入。
问:选举期间系统还能工作吗?答:选举通常很快完成,但期间需要领导者协调的操作可能短暂暂停。良好的设计会尽量缩短选举时间并让读操作不受影响。

| 类型 | 分布式协调模式 |
| 核心目标 | 选出唯一协调者 |
| 关键机制 | 心跳、租约、共识 |
| 常见风险 | 脑裂 |
| 典型工具 | ZooKeeper、etcd、Raft |
登录 后参与讨论
暂无讨论,来发表第一条评论吧