分布式锁

2024/02/28 分布式 共 355 字,约 2 分钟

分布式锁

分布式锁应该具有的条件

  • 在分布式环境下,一个方法只能被一个机器的一个线程执行。
  • 高可用的获取锁和释放锁
  • 高性能的获取锁和释放锁
  • 具备可重入特性(可重入:指的是可以重新进入,由于一个任务并发使用,执行多次不会造成数据错误)
  • 具备锁失效机制,防止死锁
  • 具备非阻塞特性,(指:没有获取到锁,直接返回获取锁失败!)

分布式锁的实现方案类型大致分为三类:

  • 基于唯一索引的实现方案
  • 基于缓存的实现方案)
  • 基于zookeeper的实现方案

分布式锁的实现方式描述

  1. 利用redis的setnx命令进行key添加操作,此操作为原子操作,只有key不存在的时候才会返回true(添加key成功),否则返回结果为false(添加key失败)!
  2. Zookeeper:利用zk的临时顺序节点,来实现分布式锁和等待队列,zk设计的初衷就是为分布式锁服务的。

文档信息

Search

    Table of Contents