这是一个非常经典的面试题和架构设计问题。基于 ZooKeeper 和 Redis 实现分布式锁,在原理、特性和适用场景上有显著区别。 下面我将从多个维度进行详细对比。 核心思想对比 ZooKeeper 分布式锁:利用 临时顺序节点 和 Watcher(监听器)机制。它不是一个简单的“值”存储,而是一个具有强一致性的小型文件系统。 Redis 分布式锁:主要利用 命令(或 Redlock 算法)。它是一个基于内存的高性能键值存储,通过原子操作来抢占锁。 --- 详细对比表格 | 特性 | ZooKeeper 分布式锁 | Redis 分布式锁 (单实例/Redlock) | | :--- | :--- | :--- | | 实现原理 | 创建临时顺序节点,判断自己是否为最小节点,并监听前序节点。 | ,通过唯一值和过期时间保证互斥和防死锁。 | | 一致性保证 | 强一致性。基于 ZAB 协议,所有写操作都在 Leader 节点完成并同步给 Follower,锁状态在所有节点上最终一致。 | 最终一致性(单实例)。主从切换可能导致锁失效(脑裂问题)。<br>强一致性(Redlock...