分布式锁实战:保证、故障场景与更优替代方案(3/4)
分布式系统除了简单的分布式锁之外,还采用多种协调模式。最初,分布式锁确保对资源的独占访问,但可以通过租约(leases)来应对节点故障,利用围栏令牌(fencing tokens)防止过时操作。当目标从操作的独占所有权转变为由单个节点协调整个集群时,便引入了领导者选举(leader election)。与短生命周期的锁不同,领导权是一种长生命周期的角色,因此领导者选举适用于作业调度或集群管理等任务。然而,领导者也可能发生故障,因此需要一种机制来检测其不可用性并选举新的领导者,该机制仍然依赖于租约和超时等概念。仅靠领导者选举并不能保证节点间的一致性;这一任务由共识机制(consensus)承担。共识确保多个节点就相同状态达成一致,这对于维护配置或集群成员的一致性至关重要。现代协调平台(如 ZooKeeper 或 etcd)将租约、围栏、领导者选举和共识整合到单一基础设施中。理解每种协调原语所解决的不同问题——锁用于所有权、领导者选举用于协调、共识用于达成一致——是关键所在。虽然分布式锁是基础,但许多系统通过乐观并发控制或基于队列的处理等替代方法来实现正确性。每种协调机制都针对特定挑战,共同构建了一个用于可靠分布式系统的分层工具集。