实现分布式锁的三种方式

一、分布式锁的使用场景

不同进程间共享同一个变量,为保证共享变量的正确性,需要使用分布式锁。

分布式系统需要满足:数据一致性,可用性、分区容错性

实际使用中,任何一个分布式系统都无法同时满足一致性、可用性和分区容错性,最多只能同时满足其中两项。通常,绝大场景中我们都会牺牲强一致性来换取系统的高可用性。只要可以保证最终的一致性,用户还是可以接受的。

二、分布式锁需要具备哪些条件

  1. 在分布式系统环境下,一个方法在同一时间只能被一台机器的一个线程执行;
  2. 需要具备可重入特性;
  3. 具备锁失效机制;
  4. 防止死锁;

三、三种实现方式

  1. 基于数据库实现分布式锁
  2. 基于缓存(Redis等)实现分布式锁
  3. 基于Zookeeper实现分布式锁

猜你喜欢

转载自blog.csdn.net/sinat_34241861/article/details/112298930