什么是分布式锁? 为啥需要分布式锁?

分布式锁

前言

1. 什么是分布式锁?
2. 为什么需要分布式锁(解决了什么问题)?
3. 怎么去实现分布式锁

本篇文章就围绕以上三个问题来讲述分布式锁的概念.


分布式锁的由来当然是因为分布式架构的出现而产生的. 在之前的单体架构中 , 面对线程安全的问题可能使用 Java 提供的 ReentrantLcok 或 Synchronized 便足矣. 但是随着业务不断发展,这时单机满足不了,于是采用分布式部署的方式. 虽然一定程度解决了性能的瓶颈 , 但是也带来了许多分布式相关的问题. 就分布式锁而言,看如下图:

在这里插入图片描述

当演变为分布式部署时 :
在这里插入图片描述
可以想象下一个业务场景, 单体部署时, 业务代码里的并发控制锁策略失效.比如你一个秒杀业务, 用了 Synchronized 来进行线程控制修改数据库里的库存. 单体架构看来没啥问题, 但是多台服务器时这样的锁就不管用了. 因为每个锁只是控制着自身服务器里头的线程. 这时就需要跨服务器的锁机制来解决资源控制的问题.


实现分布式锁

分布式锁常见的有三种实现方式 :

  1. 基于 Redis 实现分布式锁.
  2. 基于 Zookeeper 实现.
  3. 基于数据库 实现.

对于具体实现的实例后面文章将会记录.

总结

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

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值