荐学习视频
- 如对分布式锁概念不了解的可以看如下视频学习一下
- 1小时掌握Redisson实现Redis分布式锁以及Redlock分布式锁_哔哩哔哩_bilibili
官方网站
spring-boot-klock-starter
基于redis的分布式锁spring-boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持spring boot,和spirng mvc等spring相关项目
项目使用步骤
- 服务POM引入
<dependency>
<groupId>cn.keking</groupId>
<artifactId>spring-boot-klock-starter</artifactId>
</dependency>
- nacos配置application-dev.yml文件中的klock配置,注意:redis没密码时password需删除,否则会报错
spring:
# 分布式锁klock配置redis
klock:
address: redis://joolun-pro-redis:6379
database: 3
# 如redis没密码此项需删除
password:
- 业务代码使用案例:商城处理订单回调,加入@klock注解,防止支付平台同时发多次回调导致异常数据
@Override
@Transactional(rollbackFor = Exception.class)
//加锁防止支付平台同时发多次回调
@Klock(name = "NotifyOrder", keys = {"#orderInfo.getId()"}, lockTimeoutStrategy = LockTimeoutStrategy.FAIL_FAST)
public void notifyOrder(OrderInfo orderInfo) {
.......
}