Java輕量級(jí)類隔離框架 SOFAArk Project v2.3.042.5MB / 01-19
SpringBlade微服務(wù)開(kāi)發(fā)平臺(tái) v4.4.0197KB / 01-30
Diboot輕代碼開(kāi)發(fā)平臺(tái) v2.11.01.3MB / 07-20
RuoYi-activiti工作流平臺(tái)源碼 v4.124.79MB / 07-19
RuoYi若依權(quán)限管理系統(tǒng) v4.7.94.12MB / 06-28
Java Struts2漏洞復(fù)現(xiàn)工具98KB / 06-26
java操作excel的jar包(jxl.jar包 源碼)610KB / 06-26
springboot整合QuartJob實(shí)現(xiàn)定時(shí)器實(shí)時(shí)管理源代碼29KB / 06-26
SOFABoot開(kāi)源框架 v3.25.0587KB / 06-21
基于SSM的應(yīng)急資源管理系統(tǒng)源碼 v1.080.7MB / 05-25
-
mybatis一鍵生成xml文件及實(shí)體Bean開(kāi)發(fā)實(shí)例 java源碼 / 4.19MB
-
Java圖書查詢系統(tǒng)源代碼 java源碼 / 2.77KB
-
Android PDF查看器開(kāi)發(fā)實(shí)例 java源碼 / 1.01MB
-
后端開(kāi)發(fā)配合elementui組件實(shí)現(xiàn)后端功能 (開(kāi)發(fā)實(shí)例) java源碼 / 10.60MB
-
-
PublicCMS 永久開(kāi)源JAVA CMS內(nèi)容管理系統(tǒng) v4.0.202506.a java源碼 / 24.6MB
-
Forest輕量級(jí)HTTP客戶端框架 v1.7.3 java源碼 / 2.35MB
-
Lucene全文檢索引擎工具包 v10.2.2 java源碼 / 43.5MB
-
螢火商城 v2.1.3 開(kāi)源版 uniapp端 java源碼 / 529KB
-
Northstar盈富量化交易軟件 v7.3.6 java源碼 / 7.6MB
詳情介紹
lock4j是一個(gè)分布式鎖組件,其提供了多種不同的支持以滿足不同性能和環(huán)境的需求。
立志打造一個(gè)簡(jiǎn)單但富有內(nèi)涵的分布式鎖組件。
特性
1、簡(jiǎn)單易用,功能強(qiáng)大,擴(kuò)展性強(qiáng)。
2、支持redission,redisTemplate,zookeeper??苫煊?,支持?jǐn)U展。
如何使用
1、引入相關(guān)依賴(支持同時(shí)存在,不同方法不同鎖實(shí)現(xiàn))。
<dependencies>
<!--若使用redisTemplate作為分布式鎖底層,則需要引入-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>lock4j-redis-template-spring-boot-starter</artifactId>
<version>${latest.version}</version>
</dependency>
<!--若使用redisson作為分布式鎖底層,則需要引入-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>lock4j-redisson-spring-boot-starter</artifactId>
<version>${latest.version}</version>
</dependency>
<!--若使用zookeeper作為分布式鎖底層,則需要引入-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>lock4j-zookeeper-spring-boot-starter</artifactId>
<version>${latest.version}</version>
</dependency>
</dependencies>
2、根據(jù)底層需要配置redis或zookeeper。
spring:
redis:
host: 127.0.0.1
...
coordinate:
zookeeper:
zkServers: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
3、在需要分布式的地方使用Lock4j注解。
@Service
//完全配置,支持spel
public class DemoService {//默認(rèn)獲取鎖超時(shí)3秒,30秒鎖過(guò)期
@Lock4j
public void simple() {
//do something
}
@Lock4j(keys = {"#user.id", "#user.name"}, expire = 60000, acquireTimeout = 1000)
public User customMethod(User user) {
return user;
}
}
高級(jí)使用
1、配置全局默認(rèn)的獲取鎖超時(shí)時(shí)間和鎖過(guò)期時(shí)間。
lock4j:
acquire-timeout: 3000 #默認(rèn)值3s,可不設(shè)置
expire: 30000 #默認(rèn)值30s,可不設(shè)置
primary-executor: com.baomidou.lock.executor.RedisTemplateLockExecutor #默認(rèn)redisson>redisTemplate>zookeeper,可不設(shè)置
lock-key-prefix: lock4j #鎖key前綴, 默認(rèn)值lock4j,可不設(shè)置
acquire-timeout 可以理解為排隊(duì)時(shí)長(zhǎng),超過(guò)這個(gè)時(shí)才就退出排隊(duì),拋出獲取鎖超時(shí)異常。
為什么必須要有這個(gè)參數(shù)?現(xiàn)實(shí)你會(huì)一直排隊(duì)等下去嗎?所有人都一直排隊(duì)有沒(méi)有問(wèn)題 ?
expire 鎖過(guò)期時(shí)間 。 主要是防止死鎖。 建議估計(jì)好你鎖方法運(yùn)行時(shí)常,正常沒(méi)有復(fù)雜業(yè)務(wù)的增刪改查最多幾秒,留有一定冗余,10秒足夠。 我們默認(rèn)30秒是為了兼容絕大部分場(chǎng)景。
2、自定義執(zhí)行器。
@Service
public class DemoService {//可在方法級(jí)指定使用某種執(zhí)行器,若自己實(shí)現(xiàn)的需要提前注入到Spring。
@Lock4j(executor = RedissonLockExecutor.class)
public Boolean test() {
return "true";
}
}
3、自定義鎖key生成器。
默認(rèn)的鎖key生成器為 com.baomidou.lock.DefaultLockKeyBuilder 。
@Component
public class MyLockKeyBuilder extends DefaultLockKeyBuilder {@Override
public String buildKey(MethodInvocation invocation, String[] definitionKeys) {
String key = super.buildKey(invocation, definitionKeys);
// do something
return key;
}
}
4、自定義鎖獲取失敗策略。
默認(rèn)的鎖獲取失敗策略為 com.baomidou.lock.DefaultLockFailureStrategy 。
@Component
public class MyLockFailureStrategy implements LockFailureStrategy {@Override
public void onLockFailure(String key, long acquireTimeout, int acquireCount) {
// write my code
}
}
5、手動(dòng)上鎖解鎖。
@Service
public class ProgrammaticService {
@Autowired
private LockTemplate lockTemplate;public void programmaticLock(String userId) {
// 各種查詢操作 不上鎖
// ...
// 獲取鎖
final LockInfo lockInfo = lockTemplate.lock(userId, 30000L, 5000L, RedissonLockExecutor.class);
if (null == lockInfo) {
throw new RuntimeException("業(yè)務(wù)處理中,請(qǐng)稍后再試");
}
// 獲取鎖成功,處理業(yè)務(wù)
try {
System.out.println("執(zhí)行簡(jiǎn)單方法1 , 當(dāng)前線程:" + Thread.currentThread().getName() + " , counter:" + (counter++));
} finally {
//釋放鎖
lockTemplate.releaseLock(lockInfo);
}
//結(jié)束
}
}
6、指定時(shí)間內(nèi)不釋放鎖(限流)
默認(rèn)的鎖獲取失敗策略為 com.baomidou.lock.DefaultLockFailureStrategy 。
@Service
public class DemoService {// 用戶在5秒內(nèi)只能訪問(wèn)1次
@Lock4j(keys = {"#user.id"}, acquireTimeout = 0, expire = 5000, autoRelease = false)
public Boolean test(User user) {
return "true";
}
}
下載地址
人氣源碼

CryptoJS加密庫(kù)(crypto.js) v4.2.0
若依后臺(tái)管理系統(tǒng) RuoYi v4.8.1
JetLinks開(kāi)源物聯(lián)網(wǎng)平臺(tái)源碼 v2.2.0
Jeepay開(kāi)源支付系統(tǒng) v2.4.0
JSH_ERP 開(kāi)源版J2EE進(jìn)銷存系統(tǒng)代碼源碼 v1.0.2
kkFileView在線預(yù)覽 v4.4.0
ECharts JavaScript圖表庫(kù) v5.6.0
QQ 聊天機(jī)器人小薇(XiaoV) v2.2.2
因酷時(shí)代(inxedu)在線教育系統(tǒng) V2.0.6
Javashop B2C開(kāi)源電商系統(tǒng) v6.3.2
相關(guān)文章
-
Java輕量級(jí)類隔離框架 SOFAArk Project v2.3.0SOFAArk 是一款基于 Java 實(shí)現(xiàn)的動(dòng)態(tài)熱部署和輕量級(jí)類隔離框架,由螞蟻集團(tuán)開(kāi)源貢獻(xiàn),主要提供應(yīng)用模塊的動(dòng)態(tài)熱部署和類隔離能力。歡迎需要的朋友下載使用...
-
SpringBlade微服務(wù)開(kāi)發(fā)平臺(tái) v4.4.0SpringBlade 是一個(gè)由商業(yè)級(jí)項(xiàng)目升級(jí)優(yōu)化而來(lái)的SpringCloud分布式微服務(wù)架構(gòu)、SpringBoot單體式微服務(wù)架構(gòu)并存的綜合型項(xiàng)目,采用Java8 API重構(gòu)了業(yè)務(wù)代碼,完全遵循阿里巴...
-
Diboot輕代碼開(kāi)發(fā)平臺(tái) v2.11.0Diboot輕代碼開(kāi)發(fā)平臺(tái)是一個(gè)面向開(kāi)發(fā)人員的低代碼開(kāi)發(fā)平臺(tái),將重復(fù)性的工作自動(dòng)化,提高質(zhì)量、效率、可維護(hù)性...
-
RuoYi-activiti工作流平臺(tái)源碼 v4.1RuoYi-activiti是一款以若依開(kāi)源權(quán)限管理系統(tǒng)為基礎(chǔ)開(kāi)發(fā)平臺(tái)并集成了activiti框架完成的工作流系統(tǒng),旨在打造集流程設(shè)計(jì)、流程部署、流程執(zhí)行、任務(wù)辦理、流程監(jiān)控于一體的...
-
RuoYi若依權(quán)限管理系統(tǒng) v4.7.9RuoYi若依權(quán)限管理系統(tǒng)是一個(gè)基于SpringBoot的權(quán)限管理系統(tǒng),代碼易讀易懂、界面簡(jiǎn)潔美觀, 核心技術(shù)采用Spring、MyBatis、Shiro沒(méi)有任何其它重度依賴,喜歡的朋友快來(lái)下載...
-
Java Struts2漏洞復(fù)現(xiàn)工具今天給大家分享Java Struts2漏洞復(fù)現(xiàn)工具,喜歡的朋友快來(lái)下載體驗(yàn)吧...
-
java操作excel的jar包(jxl.jar包 源碼)jxl.jar是通過(guò)java操作excel表格的工具類庫(kù),能夠修飾單元格屬性,是由java語(yǔ)言開(kāi)發(fā)而成的,接下來(lái)通過(guò)本文給大家介紹java操作excel的jar包(jxl.jar包 源碼),喜歡的朋友快...
-
springboot整合QuartJob實(shí)現(xiàn)定時(shí)器實(shí)時(shí)管理源代碼Quartz是一個(gè)完全由java編寫的開(kāi)源作業(yè)調(diào)度框架,形式簡(jiǎn)易,功能強(qiáng)大,,下面給大家分享springboot整合QuartJob實(shí)現(xiàn)定時(shí)器實(shí)時(shí)管理源代碼,感興趣的朋友快來(lái)下載體驗(yàn)吧...
-
SOFABoot開(kāi)源框架 v3.25.0SOFABoot 是螞蟻集團(tuán)開(kāi)源的基于 Spring Boot 的研發(fā)框架,它在 Spring Boot 的基礎(chǔ)上,提供了諸如 Readiness Check,上下文隔離,類隔離,日志空間隔離等等能力...
-
基于SSM的應(yīng)急資源管理系統(tǒng)源碼 v1.0應(yīng)急資源管理系統(tǒng)用的是是比較流行的SSM和前端JSP技術(shù),用它來(lái)創(chuàng)建使用腳本語(yǔ)言,結(jié)合HTML代碼來(lái)制作動(dòng)態(tài) 網(wǎng)頁(yè),歡迎需要的朋友下載使用...
下載聲明
☉ 解壓密碼:www.fzitv.net 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
☉ 如果這個(gè)軟件總是不能下載的請(qǐng)?jiān)谠u(píng)論中留言,我們會(huì)盡快修復(fù),謝謝!
☉ 下載本站資源,如果服務(wù)器暫不能下載請(qǐng)過(guò)一段時(shí)間重試!或者多試試幾個(gè)下載地址
☉ 如果遇到什么問(wèn)題,請(qǐng)?jiān)u論留言,我們定會(huì)解決問(wèn)題,謝謝大家支持!
☉ 本站提供的一些商業(yè)軟件是供學(xué)習(xí)研究之用,如用于商業(yè)用途,請(qǐng)購(gòu)買正版。
☉ 本站提供的lock4j高性能分布式鎖 v2.2.6資源來(lái)源互聯(lián)網(wǎng),版權(quán)歸該下載資源的合法擁有者所有。

