分布式:分布式锁与分布式事务
Redis/ZK 分布式锁的写法与坑,2PC/TCC/消息最终一致等事务方案的取舍。
本节你将能
讲清跨进程互斥的实现、可靠性要点,以及分布式事务的常见套路。
核心要点
- Redis 锁:SET NX PX + 唯一 value,Lua 释放;需看门狗续期防误删(Redisson)。
- ZK 锁:临时顺序节点,最小节点获锁,watch 前一节点;宕机自动释放更稳但吞吐低。
- 2PC:协调者两阶段提交,强一致但同步阻塞、单点风险。
- TCC:Try/Confirm/Cancel 三阶段,业务侵入大但性能好,需做空回滚与防悬挂。
- 最终一致:本地消息表 / RocketMQ 事务消息,异步保证一致,最常用。
面试连招
常被追问:Redis 锁过期但业务没跑完怎么办?TCC 空回滚/防悬挂是什么?
常见坑
锁未设超时或误删他人锁;TCC 的 Confirm/Cancel 未做幂等;以为最终一致=立即一致。