跳到主要内容

分布式锁使用全攻略,轻松掌握并发控制的利器

plus 版本专属

此章节是黑马点评 Plus 版本中专有的内容,而在整套文档中将普通版本和 Plus 版本都融合在了一起,让大家更方便的学习。

分布式锁在微服务中应用的非常的广泛,网上也有很多关于分布式锁的demo,但绝大部分应用到实际项目中还是不够完善,各种细节问题考虑的不够到位

本项目中的分布式锁是经过了长时间的生产环境验证,配置也非常的灵活,对于细节的问题也进行了处理

此分布锁是在经典的 Redisson 开源项目基础上,再次完善的封装,提供了多种使用方式,用来应对不同的使用场景:

  • 注解方式: 只需在方法上添加注解,即可自动完成加锁和解锁的功能
  • 命令级别: 只需当业务逻辑包装到接口内,通过lamba表达式,即可便捷的完成加锁和解锁的功能
  • 方法级别: 最普通的使用方式,在要逻辑的开始前进行加锁,结束后进行解锁

为什么推荐使用注解方式,而不直接使用方法级别?

目前项目的结构都是采用三层结构,控制层 + service层 + 持久层

  • 控制层 负责将service方法返回,充当前端接口调用
  • service层 复杂复杂逻辑逻辑的编写
  • 持久层 提供对数据库的操作和sql的编写,比如Mapper

如果采用方法级别Lock.lock的方式,如果存在事务的话需要考虑是否包含事务的问题,