分布式锁如何实现跨节点的一致性控制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1482个文字,预计阅读时间需要6分钟。
分布式锁+原文整理自黑马程序员相关资料+问题的引入+在平时单服务的情况下,我们使用互斥锁可以保证同一时刻只有一个线程执行自己的业务。原理是,在JVM内部维护了一个锁监视器。
分布式锁问题的引入本文整理自黑马程序员相关资料
在平时单服务的情况下,我们使用互斥锁可以保证同一时刻只有一个线程执行自己的业务。原理是,在JVM内部维护了一个锁监视器,锁监视器保证了同一时刻只有一个线程获取到锁。但是如果开启了多个服务,就会有多个JVM,从而有多个不同的锁监视器,每个锁监视器监视自己JVM内部的线程,因此一个JVM内部的线程获取到锁,并不影响其他JVM内部的线程获取锁。从而导致并发安全问题。因此,我们需要独立于JVM之外的锁监视器对所有的线程统一管理。
概念满足分布式系统或集群模式下多进程可见并且互斥的锁。
常见分布式锁的实现比较获取锁:
利用Redis的SETNX保证互斥的特性,同时设置锁过期时间,避免服务宕机不能执行释放锁的操作而导致死锁。
本文共计1482个文字,预计阅读时间需要6分钟。
分布式锁+原文整理自黑马程序员相关资料+问题的引入+在平时单服务的情况下,我们使用互斥锁可以保证同一时刻只有一个线程执行自己的业务。原理是,在JVM内部维护了一个锁监视器。
分布式锁问题的引入本文整理自黑马程序员相关资料
在平时单服务的情况下,我们使用互斥锁可以保证同一时刻只有一个线程执行自己的业务。原理是,在JVM内部维护了一个锁监视器,锁监视器保证了同一时刻只有一个线程获取到锁。但是如果开启了多个服务,就会有多个JVM,从而有多个不同的锁监视器,每个锁监视器监视自己JVM内部的线程,因此一个JVM内部的线程获取到锁,并不影响其他JVM内部的线程获取锁。从而导致并发安全问题。因此,我们需要独立于JVM之外的锁监视器对所有的线程统一管理。
概念满足分布式系统或集群模式下多进程可见并且互斥的锁。
常见分布式锁的实现比较获取锁:
利用Redis的SETNX保证互斥的特性,同时设置锁过期时间,避免服务宕机不能执行释放锁的操作而导致死锁。

