分布式核心技术-关于高并发下分布式锁你知道多少?点击小标题观看视频讲解
简介:分布式锁核心知识介绍和注意事项
-
背景
-
就是保证同一时间只有一个客户端可以对共享资源进行操作
-
案例:优惠券领劵限制张数、商品库存超卖
-
核心
- 为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度
- 利用互斥机制来控制共享资源的访问,这就是分布式锁要解决的问题
-
-
避免共享资源并发操作导致数据问题
-
加锁
- 本地锁:synchronize、lock等,锁在当前进程内,集群部署下依旧存在问题
- 分布式锁:redis、zookeeper等实现,虽然还是锁,但是多个进程共用的锁标记,可以用Redis、Zookeeper、Mysql等都可以
-
-
设计分布式锁应该考虑的东西
-
排他性
- 在分布式应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行
-
容错性
- 分布式锁一定能得到释放,比如客户端奔溃或者网络中断
-
满足可重入、高性能、高可用
-
注意分布式锁的开销、锁粒度
-