yudao-spring-boot-starter-protection 技术组件,使用 Redis 实现分布式锁的功能,它有 2 种使用方式:
编程式锁:基于 Redisson 框架提供的各种 分布式锁
声明式锁:基于 Lock4j 框架的 @Lock4j 注解
编程式锁
yudao-module-pay 模块的 notify 功能,使用到分布式锁,确保每个支付通知任务有且仅有一个在执行。
① 在 RedisKeyConstants 类中,定义通知任务使用的分布式锁的 Redis Key。
② 创建 PayNotifyLockRedisDAO 类,使用 RedisClient 实现分布式锁的加锁与解锁。
③ 在 PayNotifyServiceImpl 执行指定的支付通知任务时,通过 PayNotifyLockRedisDAO 获得分布式锁。
声明式锁
方法上 @Lock4j 即可, 非常方便