high-concurrent-actual
  • Introduction
  • 分布式锁实现方案
    • 分布式锁介绍
    • 基于redis(一)
    • 基于redis(二)
    • 基于zookeeper
    • 分布式锁的应用场景
    • 分布式锁方案比较
  • 分布式事务解决方案
    • LCN解决分布式事务
    • 分布式相关的解决方案介绍
    • 消息队列解决方案
    • TCC解决方案
    • 本地消息表解决方案
    • SpringBoot实现分布式事务
    • SpringCloudAlibaba - 阿里分布式事务Seata
    • SpringCloudAlibaba - 阿里RocketMQ
    • RabbitMQ消息队列的分布式事务解决方案
  • 分布式系统校验解决方案
    • 分布式Session
    • JWT方式
    • 单点登录框架
  • 互联网高可用架构分析
  • 分布式订单流水号生成策略
Powered by GitBook
On this page
  • 概述
  • 如何在分布式系统中,实现多线程对代码和资源的同步访问?
  • 分布式锁的实现有哪些?

Was this helpful?

  1. 分布式锁实现方案

分布式锁介绍

概述

分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。

如何在分布式系统中,实现多线程对代码和资源的同步访问?

  • 对于单进程场景,我们可以使用语言和类库提供的锁。

  • 对于分布式场景中,我们可以使用分布式锁。

分布式锁的实现有哪些?

1.Memcached分布式锁

利用Memcached的add命令。此命令是原子性操作,只有在key不存在的情况下,才能add成功,也就意味着线程得到了锁。

2.Redis分布式锁

和Memcached的方式类似,利用Redis的setnx命令。此命令同样是原子性操作,只有在key不存在的情况下,才能set成功。(setnx命令并不完善,后续会介绍替代方案)

3.Zookeeper分布式锁

利用Zookeeper的顺序临时节点,来实现分布式锁和等待队列。Zookeeper设计的初衷,就是为了实现分布式锁服务的。

4.Chubby

Google公司实现的粗粒度分布式锁服务,底层利用了Paxos一致性算法。

Previous分布式锁实现方案Next基于redis(一)

Last updated 5 years ago

Was this helpful?