一、分布式锁概述
1.1 为什么需要分布式锁
在单机环境中,可以使用 synchronized 或 ReentrantLock 实现线程同步。但在分布式系统中,多个服务实例运行在不同的机器上,本地锁无法跨进程生效。
1.2 分布式锁的特性要求
一个可靠的分布式锁需要具备以下特性:
| 特性 | 说明 |
|---|---|
| 互斥性 | 同一时刻只能有一个客户端持有锁 |
| 不会死锁 | 即使持有锁的客户端崩溃,锁也能被释放 |
| 容错性 | 只要大部分节点正常,就能获取和释放锁 |
| 加锁解锁同一客户端 | 不能释放别人的锁 |
| 可重入性 | 同一客户端可以多次获取同一把锁(可选) |
2026/3/20大约 17 分钟