分布式锁调研

版权声明:Summer https://blog.csdn.net/csdnyanglei/article/details/82258537

参考目录:

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

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

背景

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

需求

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

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

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

 

实践

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

猜你喜欢

转载自blog.csdn.net/csdnyanglei/article/details/82258537