领导者选举与租约

分布式系统通过选举产生单一写入者(或协调者):基于共识协议、租约或外部协调服务实现;必须配合租约到期与隔离机制避免双主。

实现方式共识协议选举(Raft)、租约 + 心跳续约、协调服务(etcd/ZooKeeper)
关键租约时限、续约失败处理、旧主隔离(fencing)
用途单写者、定时任务去重、分区分配

防双主手段

手段机制注意
多数派仲裁获得多数票才能成为主偶数节点需明确仲裁规则
租约 + 心跳定期续约,过期自动失效续约与业务隔离,避免停顿误判
Fencing 令牌存储端校验令牌单调递增旧主请求被存储层拒绝
协调服务etcd/ZooKeeper 会话绑定会话过期语义与业务对齐
选举只保证“选出”,不保证“旧领导者已停止工作”,需要 fencing 或存储端校验。

易错点

  • 租约续期与业务处理共享线程,GC 停顿导致误判失主
  • 旧主未隔离就重启写服务,出现两个写入者

数据来源与参考

  • 《数据密集型应用系统设计》(Kleppmann)第 8 章
  • Martin Kleppmann《How to do distributed locking》(2016)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌