spring boot分佈式鎖組件spring-boot-klock-starter

spring boot分佈式鎖組件spring-boot-klock-starter

spring-boot-klock-starter

基於redis的分佈式鎖spring boot starter組件,使得項目擁有分佈式鎖能力變得異常簡單,開箱即用,支持spring boot,和spirng mvc等spring相關項目

項目地址:https://gitee.com/kekingcn/spring-boot-klock-starter

快速開始

spring boot項目接入

1.添加lock starter組件依賴,目前還沒上傳到公共倉庫,需要自己下源碼build


org.springframework.boot
spring-boot-klock-starter
1.0-SNAPSHOT

2.application.properties配置redis鏈接:spring.klock.address=127.0.0.1:6379

3.在需要加分佈式鎖的方法上,添加註解@Klock,如:

@Service
public class TestService {
@Klock(waitTime = Long.MAX_VALUE)
public String getValue(String param) throws Exception {
if ("sleep".equals(param)) {//線程休眠或者斷點阻塞,達到一直佔用鎖的測試效果
Thread.sleep(1000 * 50);

}
return "success";
}
}

spring mvc項目接入

其他步驟和spring boot步驟一樣,只需要spring-xx.xml配置中添加KlockAutoConfiguration類掃描即可,如:

使用參數說明

配置參數說明

spring.klock.address : redis鏈接地址
spring.klock.password :redis密碼
spring.klock.database :redis數據索引
spring.klock.waitTime :獲取鎖最長阻塞時間(默認:60,單位:秒)
spring.klock.leaseTime:已獲取鎖後自動釋放時間(默認:60,單位:秒)

@Klock註解參數說明

@Klock可以標註四個參數,作用分別如下
name:lock的name,對應redis的key值。默認為:類名+方法名
lockType:鎖的類型,目前支持(可重入鎖,公平鎖,讀寫鎖)。默認為:公平鎖
waitTime:獲取鎖最長等待時間。默認為:60s。同時也可通過spring.klock.waitTime統一配置
leaseTime:獲得鎖後,自動釋放鎖的時間。默認為:60s。同時也可通過spring.klock.leaseTime統一配置

關於測試

工程test模塊下,為分佈式鎖的測試模塊。可以快速體驗分佈式鎖的效果。


分享到:


相關文章: