Files
Hui-s-notebook/分布式锁的实现方案.md
2023-09-10 10:50:53 +08:00

653 B
Raw Permalink Blame History

要求

  • 有高可用的获取锁和释放锁的功能
  • 获取锁和释放锁的性能要好
  • 锁要是可重入锁(避免死锁)
  • 阻塞锁(根据业务考虑)
  • 公平锁(根据业务考虑)

基于数据库

数据库表主键唯一性

多个请求到达数据库,数据库保证只有一个插入成功

通过数据库 mmvc 实现

基于 redis

redis 实现

set key value nx px milliseconds

过期时间设置 2-3 s 左右 value 随机值uuid只能由加锁线程解锁 解锁使用 lua 脚本 get valuedelete 操作,解锁时必须 uuid 一致

redission

zookeeper