当前位置:   article > 正文

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

为什么使用分布式锁
分布式锁

前言

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

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


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

在这里插入图片描述

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


实现分布式锁

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

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

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

总结

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/745272
推荐阅读
相关标签
  

闽ICP备14008679号