专栏首页IT云清分布式锁系列--01分布式锁入门介绍

分布式锁系列--01分布式锁入门介绍

本系列主要介绍分布式锁相关内容及实现。本文主要介绍以下内容:
  • 1.分布式锁是什么
  • 2.分布式锁约束
  • 3.分布式锁实现方式

1.分布式锁是什么

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

在单机应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,我们用java内置的各种锁就可以解决这个问题,此时,所有的请求,都是在当前服务器的jvm中,共享变量在同一个内存中。

而在分布式环境下,我们要操作的变量,会处在不同的jvm中,在不同的内存中,不存在共享和可见性,这使得单机模式下的控制策略不再适用。

为了解决这个问题,我们需要一种,可以跨jvm跨服务的互斥机制来控制共享资源的访问,这就是分布式锁需要解决的问题。

2.分布式锁约束

分布式锁,需要满足以下几个基本的约束条件:

2.1互斥性

在任意时刻,只能有一个客户端持有锁;

2.2安全性

保证不出现死锁,在实际场景中,很有可能,一个客户端获取锁后,由于服务崩溃或者其他原因,导致锁没有释放,此时就会出现资源的死锁,所以,我们需要保证锁在任何情况下,都可以得到释放。

2.3对称性

加锁和解锁,必须是同一个客户端,解锁时,不能把别人加的锁给解锁了。

2.4高可用

提供锁服务的这个服务,自身必须高可用,需要考虑自身挂掉的可能性,不能因为自己挂掉了,导致系统无锁服务可用。

3.分布式锁实现方式

目前常见的有以下几种实现方式,后面会单独实现:

3.1基于数据库实现

3.2基于Redis实现(或Redisson实现)

3.3基于ZooKeeper实现(或Curator实现)

理论上讲,没有哪种实现方式,是完美的,是可以满足一切业务需求的,具体的技术选型,需要根据业务来做具体选择。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker---(3)Docker常用命令

    这里举个例子,来熟悉一下docker的常用命令,我们在Docker上拉取一个mysql镜像,然后启动一个mysql容器。

    IT云清
  • Debezium教程翻译03:启动mysql数据库

    目前,我们已经启动了Zookeeper和Kafka,但是还没有数据库服务器,Debezium可以从中捕获变化。现在,让我们使用一个示例数据库启动一个MySQL服...

    IT云清
  • Java中modCount的用法,fail-fast机制

    在线程不安全的集合类中,都有这个用法。我们以AbstractList为例,拿出源码中的解释:

    IT云清
  • 今日推荐:awesome-architecture

    但是这条路还是有很多人走,而且也留下了相应的封神之法,今天推荐的就是一个相当详细的架构师框架学习图。内容很充实,看目录的时候,滚动条滚了很多次!学习起来肯定也不...

    仇诺伊
  • 分布式设计与开发-宏观概述

    分布式可繁也可以简,最简单的分布式就是大家最常用的,在负载均衡服务器后加一堆web服务器,然后在上面搞一个缓存服务器来保存临时状态,后面共享一个数据库,其实很多...

    企鹅号小编
  • JAVA最流行的技术选型分类整理

    Eureka(Netflix),Consul,Nacos,Etcd,Zookeeper

    Java技术江湖
  • 分布式下必备神器之分布式锁

    今天这篇文章我们来聊聊在分布式环境下的一个神兵利器——分布式锁!在看这篇文章的时候,默认大家对锁已经了解了,如果不了解的朋友可以去翻翻公号前面的文章,有很多篇详...

    纯洁的微笑
  • 分布式和集群的区别还傻傻分不清楚?我用最白话的方式给你讲明白!

    分布式开发的时代实际上早已悄悄地成为了时代的主流,吵得很热的云计算实际上只是包装在分布式之外的商业概念,很多开发者(包括我)都想加入研究云计算这个潮流,在 G...

    iMike
  • 分布式和集群的区别究竟是什么?

    IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝...

    程序员小强
  • 分布式与集群的区别究竟是什么?

    在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单...

    敖丙

扫码关注云+社区

领取腾讯云代金券