分布式锁的应用场景
分布式情况下(多JVM),线程A和线程B很可能不是在同一JVM中,这样线程锁就无法起到作用了,这时候就要用到分布式锁来解决
分布式锁应该具备的特点
可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行。
这把锁要是一把可重入锁(避免死锁)
这把锁最好是一把阻塞锁(根据业务需求考虑要不要这条)
有高可用的获取锁和释放锁功能
获取锁和释放锁的性能要好
说说线程锁和进程锁
分布式锁的实现
1、基于数据库
2、基于缓存
redis的RedLock算法
3、zookeeper
参考文档:
1.https://www.cnblogs.com/austinspark-jessylu/p/8043726.html
2.https://blog.csdn.net/u012625036/article/details/55670848
3.https://blog.csdn.net/l_bestcoder/article/details/79336986