目录
什么是分布式锁
锁是对同一时间只能有一个线程访问某个资源的限制,synchronized关键字虽然可以处理多线程问题,保证同一时间只有一个线程访问到某个资源,做不到粗细度控制,只适用于单机系统,对分布式集群系统就满足不了。Java虽然提供了Lock接口,可以做到粗细度控制,却依然只适用于单击系统。现在越来越多的项目,为了追求性能和并发,采用了soa架构,微服务架构,于是就会出现多个模块单独的服务。如何保证多个节点的同步执行,就用到了分布式锁。
分布式锁有哪些
Redis分布式锁
官方叫做RedLock算法,是Redis官方支持的分布式锁算法。这个分布式锁有3个重要的点:互斥(只能有一个客户端获取锁)、不能死锁、容错(只要大部分Redis节点创建了这把锁就可以)。Redis普通的分布式锁实现方式,
SET key value [EX seconds] [PX milliseconds] NX //创建一个 key,这样就算加锁
NX:表示只有key不存在的时候才会设置成功,如果此时
本文介绍了分布式锁的概念及其重要性,详细讲解了Redis分布式锁的两种实现方式——简单分布式锁和RedLock算法,以及Zookeeper分布式锁的工作原理。通过对比,指出Redis锁在性能上的消耗以及Zookeeper锁在客户端故障时的自动释放优势。
订阅专栏 解锁全文
172万+

被折叠的 条评论
为什么被折叠?



