Spring分布式锁
1.redis
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-integration</artifactId> </dependency> <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2.zookeeper
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-integration</artifactId> </dependency> <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-zookeeper</artifactId> <version>5.0.4.RELEASE</version> </dependency>
3.配置类
//分布式锁 @Configuration public class RedisLockConfiguration { @Bean public RedisLockRegistry redisLockRegistry(RedisConnectionFactory redisConnectionFactory) { return new RedisLockRegistry(redisConnectionFactory, "ucp-multi-accept"); } }
4.使用
Lock lock2 = redisLockRegistry.obtain("TaskThread-lock-60");//分布式锁 获取锁
try{
boolean b1 = lock2.tryLock(3, TimeUnit.SECONDS);//尝试加锁 如果加锁失败则跳过
if (!b1){
return;
}
// do sth
}catch (Exception ex){
log.error("TaskThread-lock-60",ex);
}finally {
lock2.unlock();
}
5.方法说明


浙公网安备 33010602011771号