一款基于 Spring Boot Starter 机制的分布式锁框架,实现了redis和zookeeper两种模式的分布式锁功能,以注解的方式(@RLock和@ZLock)对方法进行加锁操作,零代码实现业务加锁能力,涵盖各种加锁方式,并支持redis和zookeeper的集群。
创建Spring Boot项目
引入maven依赖
<dependency>
<groupId>io.gitee.tooleek</groupId>
<artifactId>lock-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
在Spring Boot的项目配置文件application.yml中添加相应的配置,如:
lock-config:
lock-scheme: redis #锁的实现方式,支持两种:redis、zookeeper
redis: #lock-scheme配置为redis时,需要配置该参数
pattern: single #redis模式配置,single:单机模式,cluster:集群模式,replicated:云托管模式,sentinel:哨兵模式,master_slave:主从模式
# 不同的redis模式对应不同的配置方式,single-server对应的就是单机模式,具体参数意义可参考redisson的配置参数说明
single-server:
address: 127.0.0.1
port: 6379
password: 123456
#zookeeper: #lock-scheme配置为zookeeper时,需要配置该参数
# address: 127.0.0.1:2181 #zk地址,支持集群
# connection-timeout-ms: 3000
# session-timeout: 3000
在需要使用分布式锁的方法上面使用@RLock或@ZLock注解,锁的关键字使用@Key,以最简单的用法为例,如:
###################### redis模式 ######################
@RLock
public void hello(String ces, @Key String orderNo) {
System.out.println("hello");
}
######################################################
#################### zookeeper模式 ####################
@ZLock
public void hello(String ces, @Key String orderNo) {
System.out.println("hello");
}
######################################################
如果需要配置不同类型的锁,可以直接变更@RLock或者@ZLock参数值即可
@RLock提供四个参数可以配置:
lockType:锁类型, 默认是可重入锁
leaseTime:加锁时间
waitTime:最长等待时间
timeUnit:锁时长单位
@ZLock提供三个参数可以配置:
interProcess:锁类型, 默认是分布式可重入排它锁
waitTime:等待锁时间
timeUnit:锁时长单位,默认单位:秒
1.1.x 版本的使用@Lock,用法与@RLock类似,参数用法是一样的,1.2.x 版本兼容1.1.x 版本的用法,配置如下风格:
lock-config:
pattern: single
single-server:
address: 127.0.0.1
port: 6379
password: 123456
DEMO地址如下:https://gitee.com/tooleek/lock-spring-boot-starter-demo
群号:779169894
加群链接:https://jq.qq.com/?_wv=1027&k=5ziKU1r
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )