我们为什么需要分布式锁?
因为我们的数据库或者是app的server通常有很多个,而我们高并发请求的时候,只用一个锁肯定不行了(比如只加synchronized关键字)所以 面对微服务架构下的并发请求。我们需要分布式锁。
【就是说 多个数据库+多个并发的请求,使得我们需要分布式锁。如果只是一个数据库+多个并发请求,只需要用synchronized或者reentrantLock就行了。并发请求才是我们用锁的关键原因。如果没有并发 我们根本用不到锁】
常见的分布式锁:
- 基于数据库的分布式锁
悲观锁乐观锁【version】。 - 基于缓存实现分布式锁
用redis(setnx, redlock…) - 基于zookeeper实现的分布式锁
之前的理解,zookeeper是用来为管理集群的,比如做load balancing之类的。用于管理协调大量服务器集群。但是实际 zookeeper是一个为分布式应用提供一致性服务的开源组件。它内部是一个分层的文件系统目录树结构,规定同一个目录下只能有一个唯一文件名。它也可以实现分布式锁。
常用的分布式锁有哪些?
分布式锁的几种解决方案
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)