分布式锁介绍
分布式环境中,多个系统对共享资源进行并发访问时,为了保证数据安全和一致,需要应用分布式锁技术来顺序访问或修改共享资源。
分布式锁实现方式
- 基于数据库乐观锁
- 基于缓存如redis乐观锁
- 基于zookper实现
分布式锁设计要求
- 共享资源在同一时间只能被一台机器上的一个线程执行
- 这把锁要是一把可重入锁(避免死锁)
- 满足可用性,分区容忍性
- 解锁和加锁必须是同一个线程
分布式锁实现原理
- 全局的共享条件变量
- 判断条件变量是否满足加锁要求
- 通过原子性的一组事务操作来修改条件变量来达到加锁和解锁目的
分布式锁的主要应用
- 分布式系统全局定时任务
- 分布式系统秒杀场景
- 其他需要对全局共享资源修改访问的场景