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模塊下,為分佈式鎖的測試模塊。可以快速體驗分佈式鎖的效果。
閱讀更多 小陳博主 的文章