一. 什么是分布式锁
分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现,
如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往需要互斥来防止彼此干扰来保证一致性
二. 为什么需要分布式锁
通过乐观锁(一般都是通过CAS来进行实现的)也能解决共享资源的访问问题。
但是在并发量比较大的时候,使用乐观锁的实现反而会影响效率,降低系统的吞吐量。这时实现高效的分布式锁能提升西能
三. 分布式锁实现时需要的注意事项
1. 无死锁:即使客户端崩溃或者其他事情发生,也不会影响其他客户端获取锁
2. 超时问题:如果在获取锁与释放锁之间逻辑执行太长,超出了锁设置的过期时间就会导致问题。
因为所过期了,第二个线程就会获取并持有锁,但是这个时候第一个线程逻辑执行完后释放了锁,第三个线程就可以在第二个线程下逻辑执行期间获取了锁
3. 可重入性