分布式锁的使用场景是什么?有哪些实现方案?

单体架构中,多个线程都是属于同⼀个进程的,所以在线程并发执⾏时,遇到 资源竞争 时,可以利⽤ ReentrantLock synchronized 等技术来作为,来控制共享资源的使⽤

⽽在分布式架构中,多个线程是可能处于不同进程中的,⽽这些线程并发执⾏遇到资源竞争时,利⽤ReentrantLock、synchronized等技术是没办法来控制多个进程中的线程的,所以需要分布式锁,意思就是,需要⼀个 分布式锁⽣成器 分布式系统中的应⽤程序都可以来使⽤这个⽣成器所提供的锁,从⽽达到多个进程中的线程使⽤同⼀把锁

⽬前主流的分布式锁的实现⽅案有两种:
  1. zookeeper :利⽤的是zookeeper的临时节点、顺序节点、watch机制来实现的,zookeeper分布式锁的特点是 ⾼⼀致性 ,因为zookeeper保证的是 CP ,所以由它实现的分布式锁更可靠,不会出现混乱
  2. redis :利⽤redis的setnx、lua脚本、消费订阅等机制来实现的,redis分布式锁的特点是⾼可⽤,因为redis保证的是 AP ,所以由它实现的分布式锁可能不可靠,不稳定⼀旦redis中的数据出现了不⼀致,可能会出现多个客户端同时加到锁的情况

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图图是个好孩纸~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值