分布式系统之分布式锁

现在很多系统都采用分布式部署,并且同一个应用为了实现高可用,在部署时采用集群方式。这时当前端代理服务器受到请求后 被分发到不同的服务器上面。像下面这种。

所以在这种情况下单个JVM的锁就排不上用场了。在这种场景下需要分布式锁。目前分布式锁有个各种实现方式,各有优劣在实际应用场景采用不同的实现方式。接下来先来介绍基于关系型数据库实现方式的分布式锁。

基于关系型数据库实现方式的锁有几个特点

1.锁是悲观锁同一个时间点只能有一个客户端对象能够获取到锁。

2.锁是阻塞锁,在没有获取到锁之前客户端代码是阻塞的。

实现思路
通过数据库行锁进行锁定。因为数据库行锁是排他锁。并且当锁没有释放其他连接对象想获取该行行锁这会阻塞线程。所以很容易实现能够阻塞线程的锁。

下面分享github源码地址

https://github.com/boyalearn/distributed-lock

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值