分布式锁调研

博客围绕Java分布式锁展开,指出集群部署时同一服务对同一资源调用存在竞争问题,传统锁无法满足多进程环境。提出分布式锁需求,如同一时间同一方法仅能被一台机器的一个线程执行等。结合项目已采用Redis数据库的情况,考虑用Redis实现分布式锁功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

参考目录:

  1. Java分布式锁看这篇就够了
  2. 聊聊分布式事务,再说说解决方案
  3. 漫画:什么是分布式事务?
  4. 漫画:什么是分布式锁

   注:分布式锁、分布式事务、分布式事务锁是不同的概念

背景

   同一个服务,集群部署时,对同一个资源的调用存在竞争问题,在一个进程上对多线的程资源竞争问题可以采用java等关键字及锁去解决。但多进程环境中,前者已经无法满足这种情况了。故需要需求一种解决方案来满足资源竞争问题。

 

需求

     经过调研,分布式锁有以下要求:

  1. 可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器-上的一个线程执行;
  2. 这把锁要是一把可重入锁(避免死锁);
  3. 这把锁最好是一把阻塞锁(根据业务需求考虑要不要这条);
  4. 这把锁最好是一把公平锁(根据业务需求考虑要不要这条);
  5. 有高可用的获取锁和释放锁功能;
  6. 获取锁和释放锁的性能要好;

     根据项目需求,我们应该满足其中的1、2、3(支持阻塞或非阻塞)、5、6。

 

实践

     目前的项目中,已经采用了Redis数据库,考虑采用Redis来协助完成分布式锁的功能。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值